Limitations

Entity Framework Core v1 is a new framework and it has its fair share of limitations. Below is a list of limitations you might run into with the generated code. We have done our best to keep this to a minimum, but some things are simply unavoidable. We have documented some aspects we ran into as well to make you aware of these. When newer versions are released by Microsoft we'll update the support for Entity Framework Core and this list of limitations.

  • Unique constraints are not generated as indexes nor as alternative keys. The designer doesn't support alternate keys and unique constraints have no real value to the Entity Framework Core engine. The constraint is already defined in the DB where it is enforced, so it's not really useful to generate the index, as LLBLGen Pro doesn't generate relational model meta data into the mappings.
  • Cascade rules for OnDelete are determined from the rule set on the relationship in the model. EF core supports 3 forms (SetNull, Cascade, Restrict) instead of the 5 we support. We'll fall back to None if a value not supported by EF core is chosen.
  • Currently VB.NET isn't a supported target language for Entity Framework Core in the LLBLGen Pro designer, as it's not supported by Entity Framework Core itself. See: https://github.com/aspnet/Home/wiki/Roadmap#future-work and https://github.com/aspnet/EntityFramework/issues/4064#issuecomment-164846616
  • Properties are always public, as the current Entity Framework Core change tracker has issues with backing fields, according to their own documentation.
  • Collections of related elements are currently generated as List<T>. This is based on the documentation of Entity Framework Core.
  • Typed Lists with left joins might fail due to a bug in Entity Framework Core: https://github.com/aspnet/EntityFramework/issues/6818
  • Fetching derived elements of a derived model, where the derived element contains a set of nested derived elements (e.g. 'Customer' which contains a set of 'Orders') can fail due to a bug in Entity Framework Core: https://github.com/aspnet/EntityFramework/issues/6824
  • Entity Framework Core rewrites joins in a Linq query over optional relationships to DefaultIfEmpty() calls which will run in memory (v1.0.x) as DefaultIfEmpty() isn't yet translatable to SQL by Entity Framework Core
  • A GroupBy in a Linq query will run in memory as Entity Framework Core can't translate that to SQL (v1.0.x).