Key features

Integration

  • Visual Studio 2019+, Visual Studio Code, Ryder, SharpDevelop 3 and others (MSBuild targets support is required)
  • ASP.NET Core
  • WPF (built-in INotifyPropertyChanged, INotifyCollectionChanged, IDataErrorInfo implementation)
  • Open, extendable architecture (built-in IoC container, custom IoC containers support)
  • Built-in logging framework, custom loggers are supported through IoC

Domain modelling

  • Code-First approach with attribute-based mappings
  • Wide range of supported standard .NET types including Nullable<T>, TimeSpanEnums
  • Entities, Structures (aka ValueTypes), persistent interfaces, closed and open generic classes
  • Persistent collections (EntitySet<TEntity>)
  • Unidirectional and bidirectional associations with automatic inverse support and referential integrity checks
  • Built-in validation with declarative business rules runs in  "Continious", "On Demand" or "On Commit" modes
  • Global & local lifecycle events
  • Unified Key object

Database-related features

  • Automatic maintenance of database schema: tables, foreign keys, constraints, indexes, sequences/generators, full-text indexes
  • Wide range of supported primary key types: int, long, string, guid, etc.
  • Composite primary keys
  • "Single Table", "Class Table", "Concrete Table" inheritance schemes support
  • Declaratively defined unique, non unique, full-text indexes
  • Arbitrary type discriminators
  • Large inheritance hierarchies support (efficient JOINs for TPT)

Queries, LINQ

  • Automatic traversal through Entity references & EntitySets
  • Subqueries (aggregates, correlated & non-correlated subqueries)
  • Left Outer joins
  • Large local collections support
  • Projections (non-tail projections, subqueries, anonymous types, custom types aka DTO)
  • Order by and Group by reference field, anonymous types, aggregate, member of enum
  • Take/Skip operators
  • Built-in full-text queries support
  • Custom extensions
  • Direct SQL commands execution

Performance

  • Automatic query pre-compilation
  • Delayed queries (aka Future queries)
  • Partial/Eager Entity fetching
  • Automatic statement batching
  • Partial collections’ content fetching
  • Lazy loading
  • Partial materialization
  • MARS support
  • Fast key generation (Hi-Lo algorithm, sequential guid algorithm)
  • L1 cache

Operational features

  • GC-friendly IdentityMap (weak references to Entities are used)
  • Unit of work pattern (SaveChanges/CancelChanges API)
  • Cascading updates/deletes
  • Automatic reference dependency ordering/loop breaking on Persist
  • Transactions (regular, nested aka savepoints, long-running transactions)
  • Automatic flushes/persist before queries, etc.
  • Local transactions & N-level undo
  • Pessimistic & optimistic concurrency control, unified VersionInfo object
  • Automatic change tracking
  • Operation logging

Supported databases

  • MS SQL Server 2008 R2, 2012, 2014, 2016, 2017, 2019
  • MS Azure
  • Oracle 10g, 11g
  • PostgreSQL 8.3, 8.4, 9.0, 9.1, 9.2, 10, 11
  • MySQL 5.5, 5.6
  • Firebird 2.5

Compatibility

Top of the page