# 2021 v2

## Content



## DataCollection

**Breaking changes**

*   Renamed ToDataCollection extensions to AsDataCollection.
*   FilterExpression.GetSQLFilterExpression was removed.

**Improvements**

*   Added ISupportCreateNewItem interface to allow collections to create its items.
*   Added editing support for C1BindingListDataCollection (Supporting DataTable).
*   Added FilterExpression extension methods to work with scoped expressions.
*   Added FilterExpression.QueryFromExpression method.
*   Added C1VirtualDataCollection.IsLoading property to know when the data is being loaded.
*   Added FilterNaryExpression to better support Json serialization.
*   Added C1DataCollectionList and AsList extension.
*   Added optional constructor parameter to C1SequenceDataCollection.
*   Added null-propagation in property-path evaluation to avoid exceptions.
*   Added C1ScopedDataCollection.
*   Added ISupportVirtualization to allow consumers to know whether the collection is virtualizing the data.

**Bug fixes**

*   Fixed the issue where FilterExpression.RemoveExpressionInScope extension method kept part of the previous expression incorrectly.
*   Fixed the issue where C1BindingListDataCollection was raising exceptions when filtering by a string containing any of the characters [\]\*%.
*   Fixed the issue where C1CollectionViewDataCollection notifications were not correct on adding an item in a grouped collection.
*   Fixed C1ScopedDataCollection to work with Or expressions.
*   Fixed CanSort/CanFilter/CanGroup methods to avoid throwing exception when the path of the corresponding operation is invalid.
*   Fixed the issue where C1FilterDataCollection was throwing exception on filtering using match-whole-word and the looking up string had a special character.
*   Fixed the issue where C1SortDataCollection.CanSort was not returning false when the sort property-path did not implement IComparable.
*   Fixed the issue where C1CollectionViewDataCollection was throwing a StackOverflow exception when filtering by an expression that already used the FilterExpression of this collection.
*   Fixed the issue where C1SpanDataCollection exception was thrown on removing items.
*   Fixed the issue where C1CollectionViewDataCollection state was inconsistent after clearing all the group descriptions in the inner ListCollectionView.
*   Fixed the issue where C1SortDataCollection was raising SortChanged on performing refresh without changing sort-descriptions.

### DataCollection.EntityFrameworkCore

**Improvement**

*   Added Text-compare operations using EF.Like operator to avoid performance issues in operations calling string.ToLower().

**Bug fixes**

*   Fixed the issue where filtering was not working using the "IsOneOf" operator.
*   Fixed the issue where virtual and cursor data collections were not filtering null strings correctly.

## DataConnector

**Improvements**

*   Supported a new cross join syntax.
*   Removed ProviderInfoBase.
*   Updated DbParameter behavior.
*   Supported table creation with column type such as nvarchar (MAX).
*   Supported Data Services Edition license.

**Bug fixes**

*   Fixed the issue where 'The ComponentOne license key is invalid or missing.' error was shown on adding new C1 OData Data Source through VS Server Explorer.
*   Fixed the issue where StateChange event wasn't fired when connection state was changed.

### C1.AdoNet.D365S

**Improvements**

*   Removed ProviderInfoBase.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fixes**

*   Fixed the issue where error occurred on loading DataTable from DataReader.
*   Fixed the issue where wrong connection was returned into C1D365SCommand.Connection.

### C1.AdoNet.D365S.Desinger

*   Initial version.

### C1.AdoNet.GoogleAnalytics

**Improvements**

*   Removed ProviderInfoBase.
*   Updated GetSchemas to support get DataSourceInformation, Indexes and IndexColumns.
*   Supported user specified cache.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fix**

*   Fixed the issue where error occurred on loading DataTable from DataReader.

### C1.AdoNet.Json

*   Initial version.

### C1.AdoNet.Kintone

**Improvements**

*   Removed ProviderInfoBase.
*   Updated GetSchemas to support get DataSourceInformation, Indexes and IndexColumns.
*   Supported user specified cache.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fix**

*   Fixed the issue where error occurred on loading DataTable from DataReader.

### C1.AdoNet.Kintone.Desinger

*   Initial version.

**Bug fix**

*   Fixed the issue where C1 icon of some C1 provider extensions installed was not displayed in 'Manage Extension' of Visual Studio.

### C1.AdoNet.OData

**Improvements**

*   Supported binary data type.
*   Removed ProviderInfoBase.
*   Updated GetSchemas to support get DataSourceInformation, Indexes and IndexColumns.
*   Supported user specified cache.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fixes**

*   Fixed the issue where error occurred on loading DataTable from DataReader.

### C1.AdoNet.OData.Desinger

*   Initial version.

#### Bug fixes

*   Fixed the issue where error C1 icon of some C1 provider extensions installed is not displayed in 'Manage Extension' of Visual Studio.

### C1.AdoNet.QuickBooksOnline

**Improvements**

*   Removed ProviderInfoBase.
*   Updated GetSchemas to support get DataSourceInformation, Indexes and IndexColumns.
*   Supported user specified cache.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fixes**

*   Fixed the issue where error occurred on loading DataTable from DataReader.

### C1.AdoNet.QuickBooksOnline.Desinger

*   Initial version.

### C1.AdoNet.Salesforce

**Improvements**

*   Removed ProviderInfoBase.
*   Updated GetSchemas to support get DataSourceInformation, Indexes and IndexColumns.
*   Supported user specified cache.
*   Supported DbCommandBuilder.
*   Supported DbTransaction.

**Bug fixes**

*   Fixed the issue where error occurred on loading DataTable from DataReader.
*   Fixed the issue where error occurred on inserting BillPayments.

### C1.AdoNet.Salesforce.Desinger

*   Initial version.

### C1.EntityFrameworkCore.Json

*   Initial version.

## DataEngine

**Breaking Change**

*   Null/empty strings are now treated as nulls in DataEngine queries and PivotEngine APIs.<br />Formerly, if both null/empty strings were present, two aggregate groups were created.<br />Therefore, workspace tables containing empty strings should be deleted and recreated.

**Improvement**

*   Supported Data Services Edition license.
*   Added localized strings (and, by) to C1.PivotEngine.

**Bug Fixes**

*   Fixed the issue where FlexPivot showed incorrect values for variance, standard deviation.
*   Workbench: Fixed the issue where error occurred on importing license from Kintone or OData.
*   Fixed the issue where Op.DtPart method is not working properly.
*   Fixed issues with UCase, LCase, and Fmt operators.
*   Fixed the issue where count aggregates for null values are handled as in Excel.
*   Fixed the issue where column grand totals were incorrect when ranges were used.
*   Fixed the issue where null/empty values were excluded from Count aggregate like Excel.
*   Fixed the issue where FlexPivot shows no data (upgrade AdomdClient to 19.22.0.1).
*   Fixed the issue where FlexPivot shows no records when Boolean field was filtered.