Small and simple to use and understand.
Full object hierarchy CRUD support. Saves all object properties and the relationships to related tables. Also supports collection properties.
Allows developers to write sql as needed for reads. The design just maps the results to the objects. Writes are tightly coupled to the database and build on primary key constraints.
No inheritance requirements, uses either interface implementation or attributes.
Allows developers to modify the relation sql to further optimize loading of children.
Database constraints tolerant.
Lazy initialization support, with child sql override.
Change trackng support to history tables.
Supported databases: Sql Server, My Sql, Sqlite, Oracle, PostgreSql.
Built-in Performance tracking, implement IPerformanceTracking to allow performance tracking of all database actions.
Optimistic concurrency support.
No configuration files needed.
Trace output of SQL statements and parameter values.
Password one way hashing support.
Field level encryption with auto decrypt upon load ability.
Processing intercept support, BeforeInsert, BeforeUpdate, BeforeDelete, AfterLoad.
Database deprecation support.
Paralle Load support.
Added overloads on ExecuteScalar to add a new paramter of performCommitClose. This allows developers to run queries with-out closing the transactions, and also query under the same transaction scope.
Working on new Database Action API. This required some refactoring of the intefaces from a subrutine to a function for implementation of IObjectWriter, IObjectHierarchyWriter.
Added the entity/object name to thrown exceptions of DatabaseColumnNotFoundException and ColumnLoadException.
Continued work on new Database Action API. Writing unit tests.
Improved messages when throwing DatabaseParameterException, now includes the parameter type, also added a missing space between the parameter value and sql label info.
Found overload issue found by a user, and discovered another error message lacking details. I added the type name of the entity involved to the following excetpion: DatabaseTableAttributeNotFoundException.
Added another overload for InsertUpdate which accepts a factory and IEnumerable.
Improved concurrency error messages.
Continued working on new DatabaseAction processing api.
Continued working on new DatabaseAction processing api. Everything seems to be working. Need to build more unit tests.
Added some code to help identify problem columns/properties that violate valid Sql Server date ranges. It now tells you the column/property name when the date range is bad.
Ref: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
Added missing example projects.
- System.Data.Common (>= 4.3.0)
|2.0.2 (current version)||33||9/12/2017|