Symbiotic_Micro_ORM_Net_Standard_x64 2.0.4

Symbiotic Micro ORM Net Standard x64

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, Sql Azure, 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.
Parallel Load support.
Validation support.

Install-Package Symbiotic_Micro_ORM_Net_Standard_x64 -Version 2.0.4
dotnet add package Symbiotic_Micro_ORM_Net_Standard_x64 --version 2.0.4
paket add Symbiotic_Micro_ORM_Net_Standard_x64 --version 2.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

22-Sep-2017
Tested Symbiotic ORM on Sql Azure, seems to work, but the performance is slow due to Sql Azure.

28-Sep-2017
Synchronized unit test between the c# and vb.net versions. Added a few more comments.
More improvements to thrown errors for datetime vs datetime2.

3-Oct-2017
Added new overloads ObtainHierarchy by id loads, to include a transaction parameter. This allows database loads using the same transaction.

10-Oct-2017
Added new overloads InsertUpdateHierarchy to include a IEnumerable parameter and various related overloads with transactions.

11-Oct-2017
Renamed some parameter names.
Added a bunch of method comments.

17-Oct-2017
Added another ObtainItems overload method to IObjectLoader.

8-Nov-2017
Added FrozenElephant to assembly name, not sure how I missed that.
Addeded more documentation details to explain where the nuget output folders are, seems that has changed,
they are now located at: C:\Users\[user]\.nuget\packages\symbiotic_micro_orm_net_standard_x64\2.0.2\DataProviders

11-Nov-2017
Made SqlBuilderSqlServer.CreateObjectMapper overridable.
Removed unused ObjectFactory class.
Refactored some object creation calls to call IDatabaseTypesFactory instead.

20-Nov-2017
Added AttributeUsage attribute to some of the ORM custom attributes, this should help prevent mistakes from developers. Currently the attributes are either at the class or property level.

19-Dec-2017
Added method ShouldPerformValidation to ISqlQuery interface.

28-Dec-2017
Improved the error message to include object type names for exceptions throw for DatabasePrimaryKeyColumnNotFoundException. This should help developer quickly fix the problem.
Added more comments for Lazy load unit tests to improve developer and documentation support.
Improved and replaced exceptions thrown when performing Lazy loads of relationships. ORM was throwing ArgumentOutOfRangeException, it now throws a RelationPropertyNotFoundException. The message was also improved to include the object type names.
Fixed a bug in Lazy loads where the sql is specified in the DatabaseRelationTable attribute, see the LazyPerson2 object and the new unit test LazyHierarchyCustomSqlInRelationAttribute.
Fixed a bug in non-lazy Hierarchy loads, the child relations now use sql specified in the DatabaseRelationTable attribute.

1-Jan-2018
Improved support for IDatabaseDefineSupport. If the developers implements a relationship incorrectly the ORM silently failed to save the relationship. The ORM now throws a InvalidRelationshipTypeException and provides the class name of the parent object.
I discovered this problem when I tried to load the previously saved object and noticed that the related child object was missing as was the relationship link between them.

Version History

Version Downloads Last updated
2.0.4 (current version) 59 1/3/2018
2.0.2 106 9/12/2017