Despite the fact that there was no news in this blog from DataObjects.Net team for a couple of months, this doesn't mean that we were having rest or watching endless TV-series. We've been fixing bugs and inventing some really cool features for our customers. Let's take a closer look at the details.
First of all, bugs fixed:
- JoinedTuple WCF deserialization is fixed. This might appear only in cases when Entity has more than 63 persistent properties
- Key.Equals & TypeReference.Accuracy were fixed
- Type descendants & interface implementors discovery in IndexBuilder is fixed
- Project template generated wrong Assembly name for projects with spaces in project name.
- HintGenerator throwed NullReferenceException on GenerateCleanupByForeignKeyHints method
- Foreign keys were missed in some complex scenarios
- Wrong linq translation of IN clause with empty list is fixed
- Wrong linq translation of Nullable boolean fields is fixed
- It wasn't possible to delete and create entity with same key (within active inconsistency region).
- Primary key alteration no more leads to table recreation
- Usage of Prefetch no more leads to possible memory leaks
- Bug with translation of Contains method
Updates to the existing functionality:
- SchemaComparisonResult is included into SchemaSynchonizationException for simplificationf of upgrade procedure writing and debugging
- StorageException now contains additional information about database, table, column, value and violated constraint
- Guid values can be used as TypeDiscriminator values
- The order of upgrade sequence is changed so unique constraints and foreign keys are removed at the very beginning of the upgrade procedure and are applied only after custom upgrade handlers finish their work
The most interesting part, features:
- Basic support for SqlGeometry & SqlGeography types, spatial index support in SQL Server driver.
- Precise control over reference properties indexing
- Partial (filtered) indexes based on lambda syntax
- Сontrol over primary and regular index clustering
- Creating and registering LINQ extensions made more user-friendly
- Attributes overriding
Simply put, the features are so dramatic that we are releasing the stuff as a major version update. DataObjects.Net 4.3.7 branch will become 4.3.8 and 4.4.0 will be known as 4.4.1 (one of our lead developers call this update as DataObjects.Net R2 and I understand him pretty much).
While the above mentioned changes are being thoroughly tested under various environments and being prepared for the release, we'll describe the features listed above in a dedicated series of posts.
Thank you! Stay tuned.