Published by marco on
The summary below describes major new features, items of note and breaking changes. The full list of issues is also available for those with access to the Encodo issue tracker.
DateTimeExtensions.GetDayOfWeek()
had a leap-day bug (QNO-5051)GenericObjects
is calculated, which fixes sorting issues in grids, specifically for non-persisted or transient objects (QNO-5137)IAccessControl
API for getting groups and users and testing membership (QNO-5133)Add support for query aliases (e.g. for joining the same table multiple times) (QNO-531) This changes the API surface only minimally. Applications can pass an alias
when calling the Join
method, as shown below,
query.Join(Metadata.Project.Deputy, alias: "deputy")
You can find more examples of aliased queries in the TestAliasedQuery()
, TestJoinAliasedTables()
, TestJoinChildTwice()
defined in the QueryTests
testing fixture.
IQueryAnalyzer
for optimizations and in-memory mini-drivers (QNO-4830)ISchemaManager
has been removed. Instead, you should retrieve the interface you were looking for from the IOC. The possible interfaces you might need are IImportHandler
, IMappingBuilder
, IPlanBuilder
or ISchemaCommandFactory
.ISchemaManagerSettings.GetAuthorized()
has been moved to ISchemaManagerAuthorizer
. GenericObjects
may have an effect on the way your application sorts objects.The IParticipantManager
(base interface of IAccessControl
) no longer has a single method called GetGroups(IParticipant)
. This method was previously used to get the groups to which a user belongs and the child groups of a given group. This confusing double duty for the API led to an incorrect implementation for both usages. Instead, there are now two methods:
IEnumerable<IGroup> GetGroups(IUser user)
: Gets the groups for the given userIEnumerable<IGroup> GetChildGroups(IGroup group)
: Gets the child groups for the given groupThe old method has been removed from the interface because (A) it never worked correctly anyway and (B) it conflicts with the new API.