One of the main goal of FluentSpecification is Linq expressions support. FluentSpecification concentrates on well known ORM - Entity Framework
.
EF Core
EF Core
is fully redesigned relative to EF 6
. Framework, first of all try to convert whatever he can to SQL,
then executes query and at the end in memory executes non-convertible parts of expression.
Thanks to that, many of ideas, not available so far, can be realized on EF Core
solution.
All built-in Specifications works without problems with EF Core
. Because, there is no possibility to test all cases,
some of Specifications may not work as expected in some exceptional conditions.
Good to remember - EF Core
is still under development and do not cover all EF 6
functionalities right now.
EF 6
EF 6
is mature ORM solution, with many tutorials and big community. Many of FluentSpecification ideas is not working correctly with EF 6
(or works partially),
because of used components or by accepted architecture. It's because whole expression is converted to proper SQL queries, so only primitives and entities types can be used and also built-in SQL functions.
In Built-in Specifications section, every Specification contains proper addnotation about `Entity Framework' support
and restrictions or tips.
LinqToEntities flag
Few Specifications to meet special LinqToEntities requirements, provides special behavior for that. This state can be force in constructors or globally -
by Specification.LinqToEntities
flag.
For more information - visit Usage section.