Changelog

The JS version changelog is available by this link.

Version 7.1.0

2021-07-27
  • [New]: AddDbTable method of TableStore

  • [New]: MergeEntities method of DataModel

  • [Upd]: DebugMode option

  • [Upd]: Add possibility to default format for type

  • [Upd]: Add EnableAggrSelectInSubQuery option for QueryPanel in WPF edition

  • [Upd]: Improve AddLink method of TableLinkStore to accept DbTable as parameters

  • [Upd]: Improve enum support

  • [Upd]: Support bool formatting.

  • [Upd]: INFO loging in EasyQueryManager and EasyQueryApiHandler

  • [Upd]: Make async operations cancelable via CancellationToken. ASP.NET Core middleware and ASP.NET Web API controller now support canceling operations on aborting the request

  • [Fix]: Incorrect rendering of the Operators / General tab in DME

  • [Fix]: Add a column alias in Count SQL (some DBs throw an error without it)

  • [Fix]: Wrong path search algorithm on SQL generation

  • [Fix]: Wrong behavior in DbModel.CreateTableAlias if createEntity == true

  • [Fix]: Wrong boolean literals for PostgreSQL

  • [Fix]: Error with TPH in EF6

  • [Fix]: Bug with exception when add custom column to result set

  • [Fix]: TablePathFinder could add a surplus table sometime

Version 7.0.11

2021-06-16

Version 7.0.10

2021-06-16

Version 7.0.9

2021-05-28
  • [Upd]: Editing applied types for aggregate functions

  • [Fix]: Issue with enum properties

  • [Fix]: CROSS APPLY joins

Version 7.0.8

2021-05-21
  • [Upd]: Pass IEqResultSet into AfterColumnsAdded of ResultSetOptions

Version 7.0.7

2021-04-22
  • [Fix]: Alias search index validation in table-list to prevent index out of range exception

Version 7.0.6

2021-04-09
  • [Upd]: Performance on loading table fields was improved for such DbGates: SqlServerGate, NpgSqlGate, MySqlGate, OdpCoreGate

  • [Upd]: Prevent adding MetaEntity or MetaEntityAttr to the DataModel

  • [Upd]: DataModel loading performance from JSON was improved

  • [Fix]: CreateValueEditor in ModelEditorForm

  • [Fix]: Filling DbName for table in SqlServerGate

Version 7.0.5

2021-03-31
  • [Fix]: DbGate is disposable now and uses passed connection to LoadFromConnection DbModel extension instead of creating a new one.

Version 7.0.4

2021-03-29
  • [Upd]: New signatures for DbEntityAttrDescriptor constructors
  • [Upd]: Support totals during export
  • [Fix]: Problem with AddConditions button in WinForms edition
  • [Fix]: Setting display format during LoadFromEntityType.

Version 7.0.2

2021-03-23
  • [New]: Add UseSchemas(schemas) method to DbConnectionModelLoaderOptions.

  • [Fix]: Legacy paging behaviour

  • [Fix]: Wrong SQL error for Oracle DBs

  • [Fix]: Problem with method not found for NpgSql 5.0.x version in NpgSqlGate

Version 7.0.1

2021-03-12
  • [Fix]: The list of entities was incorrectly filtered after opening Edit Sub-Query dialog

  • [Fix]: Wrong type of result columns when COUNT aggregate function is used

  • [Fix]: Remove surplus PreFetch on exporting

  • [Fix]: GetRecordCountAsync behaviour when there is no selected column in query

  • [Fix]: Null reference exception in GetOperand

  • [Fix]: Wrong behavior of Condition.Clone for conditions with sub-queries

Version 7.0.0

2021-02-26
  • [New]: PDF and Excel exporters

  • [New]: DisplatFormat for EntityAttr

  • [New]: eq-page-navigator tag helper in ASP.NET Core

  • [New]: DataModel.Validate function that throws an exception if something is wrong with the model

  • [New]: AppliedTo property in AggrFunction - defines the list of types this aggregate function can be applied to

  • [New]: AutoResolveModelOnQueryLoad option in EasyQueryOptions

  • [New]: MapEasyQuery extension method

  • [New]: SortAlphabetically option when loading model from DbContext

  • [New]: Add policy support for DefaulteqauthProvider in ASP.NET Core

  • [New]: New CreateEntityAttr and AddEntityAttr methods of model that take descriptor

  • [New]: AddColumn method in Query to create column by descriptor

  • [New]: AddLink and UpdateLink methods in TableLinkStore

  • [Upd]: Rename Column -> QueryColumn and its events

  • [Upd]: RazorUI options ExportFormats. Allows define formats to be used on client-side as comma-separated list

  • [Upd]: Pass columns in BeforeAddRow function. CreateRow is now virtual

  • [Upd]: Change LicenseKey endpoint logic. Add support for ASP.NET 4

  • [Upd]: Korzh.EasyQuery.WinForms.ModelEditor now supports .NET Core 3.1 and .NET 5

  • [Upd]: Make FileQueryStore more flexible for inheritance

  • [Upd]: Use Microsoft.Data.SqlClient package for SqlServerGate

  • [Upd]: DbContextModelLoader uses the same SqlFormats as defined in EasyQueryOptions

  • [Upd]: AlwaysQuote sql format to determine wether all tables and columns should be always quoted in SQL

  • [Upd]: Add missed resource strings for date/time operators

  • [Upd]: Refactor EasyQueryManager lifecycle in ASP.NET 4.x Controller.

  • [Upd]: Chart setting for Razor pages. Use ResultFacetsPanel for AdhocReporting if JS Version is 6.1.x or higher

  • [Upd]: Remove QueryFormats and DbQueryFormats. SqlFormats introduced.

  • [Upd]: Optimize fetching data. Refactor with async methods

  • [Upd]: Removed DbColumn class.

  • [Upd]: DbQuery constructor throws error if model is not DbModel

  • [Upd]: Auto additg editor to the model on assigning for attribute or operand. Add special function to set editor without such logic

  • [Upd]: AddSimpleCondition overload with EntityAttr and Operator parameters

  • [Upd]: Rename MsSqlGate -> SqlServerGate package

  • [Upd]: TableLinkList.FindByTables overload to take table aliases as parameters

  • [Fix]: Reading schema and db name of table in NpgSqlGate

  • [Fix]: Add Transaction to SQL keywords list for auto-qouting

Version 5.4.7 - EasyQuery Kernel packages

2021-01-27
  • [Fix]: Save LimitClause and SelectTop query options to XML and JSON

  • [Fix]: Data model operators saving/loading to/from JSON

Version 5.4.6 - EasyQuery Kernel packages

2021-01-19
  • [Fix]: Wrong processing of "formats" request parameter in EasyQueryManagerSql

  • [Fix]: "IsAggregate" was not set properly for Custom SQL expressions

  • [Fix]: NullReference exception in case of "no path between 2 tables" situation

  • [Fix]: NullReference exception on queries with InJoin conditions

Version 5.4.5 - EasyQuery Kernel packages

2021-01-09
  • [Upd]: Chart setting for Razor pages. Use ResultFacetsPanel for AdhocReporting if JS Version is 6.1.x or higher

  • [Fix]: Support for views in EF Core 5.0

Version 5.4.4 - EasyQuery Kernel packages

2020-12-01
  • [New]: Add PreserveFormatting in IDataExportSettings

  • [New]: Condition.Clone method

  • [Upd]: Add ShowDatasetInfo options to DataExportSettings. Add GetDefaultSettings to default exporters

  • [Fix]: Support TPH in Entity Framework Core.

  • [Fix]: Ignored navigation properties were still added into the model

  • [Fix]: Processing sub-queries that have fields from the parent queries

  • [Fix]: Bug with adding expressions to group by from Virtual attributes and Custom Expressions when GroupByCalcColumns is turned off.

  • [Fix]: Incorrect processing of old macro values (like $) on XML loading

  • [Fix]: Error on loading XML queries with sub-queries

Version 5.4.4 - EasyQuery .NET Framework packages

2020-12-02
  • [Fix]: Drag-n-drop processing for LookupAttr attributes

  • [Fix]: EntitiesPanel shows both attributes lined with LookupAttr

  • [Fix]: Duplicate operation now creates new condition right after the original one

Version 5.4.3 - EasyQuery Kernel packages

2020-10-23
  • [New]: ReturnQueryStatementOnExecute option fpr middleware

  • [Fix]: New queries were stored automatically if SaveQueryOnSync was turned on

  • [Fix]: Add Guid to quoted types

  • [Fix]: Do not hide UNIQUE fields with KEY fields for MsSqlServer when model is loaded from connection

Version 5.4.3 - EasyQuery .NET Framework packages

2020-10-26
  • [New]: ReturnQueryStatementOnExecute option processing

Version 5.4.2 - EasyQuery .NET Framework packages

2020-09-30

Version 5.4.2 - EasyQuery Kernel packages

2020-09-30
  • [New]: GetQueryFileExt function in EasyQueryApiHandler

  • [New]: Sort enum by its names with special attribute for property - EqSortByEnumNames

  • [Fix]: Make EasyQueryManager IDisposible

  • [Fix]: DateTimeOffset was recognized as Int32 in SqlClientGate

  • [Fix]: Table category saving/loading to/from JSON

Version 5.4.1 - EasyQuery .NET Framework packages

2020-09-11
  • [Upd]: Return querySaved on Sync

  • [Fix]: Return meta on executeQuery

Version 5.4.1 - EasyQuery Kernel packages

2020-09-11
  • [New]: SkipForeignKeys option in DbContextLoaderOptions

  • [New]: HideKeyFields parameter in DbConnectionLoaderOptions

  • [New]: Default list value editors for special dates and times

  • [New]: Hide method in EntityAttr

  • [New]: Custom linq operators

  • [New]: QueryTuner option

  • [Upd]: Return querySaved on Sync

  • [Fix]: Value Editor wasn't saved together with default operand

  • [Fix]: Asynchronous saving/loading of InnerData and ExtraData in Query

  • [Fix]: Wrong behavior of TableStore.Add

  • [Fix]: UseInSorting parameter of Attribute processing on LoadFromEntityType

  • [Fix]: Check if Query not null before calling BuildQuery in EasyQueryManager

Version 5.4.0 - EasyQuery .NET Framework packages

2020-08-17
  • [New]: Save query to file/ Load query from file functionality

  • [New]: GetFileExtentionByContentType virtual method.
    This method allows to override the default behavior of getting the extension of the exported file by the content type.

  • [New]: Index property in EqEntityAttribute and EqEntityAttrAttribute

  • [New]: Saving Model DbParameters locally in DME

  • [New]: Error processing in EasyQueryApiController

  • [Fix]: Table -> Aliases splitting mechanism on loading from a DbContext or DbConnection

  • [Fix]: Remove BOM from the response content created by EasyQuery actions result classes

  • [Fix]: Checking connection string before checking db connection in DME

  • [Fix]: Save model loaded from JSON file in DME

  • [Fix]: Process ExtraParams in EasyQueryApiController.

Version 5.4.0 - EasyQuery Kernel packages

2020-08-18
  • [New]: EqErrorResult implementation of ActionResult for Controller

  • [New]: Save query to file/ Load query from file functionality

  • [New]: Clien Extra Conditions support

  • [New]: DoNotPrettifyNames method in DbConnectionLoaderOptions

  • [New]: Lightweight result set format

  • [New]: Query.InnerData dynamic property
    This object allows to store some addtional information with each query. For example, save the list of facets in the result panel

  • [New]: FileQueryStoreSettings.FileFormat property.
    By default this the value of this property is "json" but you can also set to "xml"

  • [New]: HasSubQuery option in EntityAttr
    It's set to true when the attribute's expression contains a sub-query

  • [New]: Add custom tuner

  • [New]: AddFileExtensionsResolver to middleware options.
    This option allows to amend the file extension of the exporting data.

  • [New]: DeleteSubEntities() methods in Entity class.
    2 methods which allow to remove sub-entities of some entity based either on their names or some "filter" function.

  • [New]: Show() and Hide() method in Entity class
    These methods allow to hide or show some entity (turn off/on all UseIn... properties) with a one line of code

  • [New]: DisplayName property in EqEntityAttrAttribute

  • [New]: TableLink.SwitchDirection method
    This method allows to switch the direction of the link between two tables (Table1 -> Table2 becomes Table2 -> Table1)

  • [New]: Add Index property to EqEntityAttribute and EqEntityAttrAttribute

  • [Upd]: Refactor EasyQueryMiddleware with EasyQueryApiHandler

  • [Upd]: Suppot sorted columns in DynamicQuery

  • [Fix]: ExecuteQuery of EasyQueryManagerLinq. Add SortedColumns support

  • [Fix]: Save/Load Query.ExtraData to/from XML

  • [Fix]: GROUP BY cluase for columns with sub-queries

  • [Fix]: Table -> Aliases splitting mechanism on loading from a DbContext or DbConnection

  • [Fix]: TableLink.Enabled was not saved to the data model file

  • [Fix]: Table priority was not taken into account on constructing the path between tables

  • [Fix]: Saving editors in JSON

  • [Fix]: Saving file path on loading model from JSON file

Version 5.3.7 - EasyQuery Kernel packages

2020-04-26
  • [New]: DataExportTuner interface
    This interface allows you to tune export settings

  • [New]: ExtraParams property in ListValueEditor

  • [Upd]: Updated the registration of CustomValueListResolver.
    Notice. Old AddValueListResolver method of EasyQueryOptions is deprecated now. Use a new one.

Version 5.3.6 - EasyQuery .NET Framework packages

2020-04-10
  • [Fix]: Name prettifier on model load

  • [Fix]: Problem with macro processing date in WinForms

Version 5.3.6 of EasyQuery kernel packages

2020-04-09
  • [Fix]: Wrong SQL when there is a group with all disabled conditions

  • [Fix]: Name prettifier on model loading from a DbConnection

  • [Fix]: Problem with SelectDistinct when LegacyPaging is true
    Now SqlQueryBuilder uses DENSE_RANK() function instead of ROW_NUMBER() when SelectDistinct is true

  • [Fix]: Formatting when value contains new line symbol

  • [Fix]: Ignore RowNumber column on export
    RowNumber column for legacy page was not ignored on export

Version 5.3.5 of EasyQuery kernel packages

2020-03-30
  • [New]: Formats.JoinsOrder propery in SqlQueryBuilder
    Allows to define the order of table joins in the FROM clause of generated SQL

  • [New]: LegacyPaging option for DbQueryFormats
    Enables paging which uses ROW_NUMBER() function.

  • [New]: UseCustomFuncInOrderBy option for DbEntityAttr
    If the option is set to false, CustomFunc of the EntityAttr will not be added to order by expression.

  • [Fix]: Wrong format of JSON file on saving via FileQueryStore
    If size of the target file is bigger than the size of the saved content - we got wrong JSON in result.

  • [Fix]: Paging support for Oracle
    Paging was not turned on by default for FormatType.Oracle format type. Now it's properly supported the similar way as for SQL Server

Version 5.3.4

2020-03-06
  • [New]: ReturnQueryOnSave option for EasyQueryMiddleware option.

  • [Fix]: CustomFunc is processed before applying the aggregate functions in columns.