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.
Parallel Load support.
Install-Package Symbiotic_Core_x64 -Version 126.96.36.199
dotnet add package Symbiotic_Core_x64 --version 188.8.131.52
<PackageReference Include="Symbiotic_Core_x64" Version="184.108.40.206" />
paket add Symbiotic_Core_x64 --version 220.127.116.11
#r "nuget: Symbiotic_Core_x64, 18.104.22.168"
// Install Symbiotic_Core_x64 as a Cake Addin #addin nuget:?package=Symbiotic_Core_x64&version=22.214.171.124 // Install Symbiotic_Core_x64 as a Cake Tool #tool nuget:?package=Symbiotic_Core_x64&version=126.96.36.199
' **** Copyright © 2011-2016 Frozen Elephant Inc. ****
Fixed a bug in IObjectChangedSupport, ORM was not marking all loaded objects a old/unchanged. Improved related unit test.
Added overload to ExecuteNonQuery call to support a collection of ISqlQuery, ISqlQuery.RowsChanged will indicate rows changed for each call. All calls are wrapped in a transaction.
Added more unit tests for sql validation.
Added a way to pass a label when calling the various ExecuteSql commands. The label will show in the trace output when errors are raised. This will simplify troubleshooting.
I Added ISqlQuery.SqlLabel property which will be included in traced commands, also to improve debugging.
Working on enhancements to support simple reads while using a different table other than the one specified in the DatabaseTable attribute.
Added an overload ObtainItem(Id) to allow passing in a ISqlQuery object.
Working on adding support for validation. System.ComponentModel.DataAnnotations.
Added argument null checks on ISqlQuery.ReturnType ParallelLoad methods.
Creating unit test to test the new DatabaseTable Read/Write attributes.
Finished unit test for the new DatabaseReadTable attribute.
Renamed test methods, removed the word "Test" from the names, makes it easier to find test.
Finished unit test for the new DatabaseWriteTable attribute.
Update xml comments of ObjectLoader.ObtainItem to clarify what is returned when an item for the specified id is not found.
Added some changes for InsertUpdate when implementing IObjectChangedSupport, no longer checks for existing record when IsNew.
Added factory method to create a ISqlQuery object.
Refactored the creation of ISqlQuery objects from within the framework and unit tests to use the IDatabaseTypesFactory interface, which is where all object specific type creation should be controlled, this allows developers full control of object creation.
Still working on Validation support.
Found and fixed InsertUpdate Bug. The check for existing record was including a row version check, so if you had a stale record it would try to insert and would fail with primary key unique contraint error. It should instead fail throw a DatabaseConcurrencyException.
Added unit test for InsertUpdate concurrency bug. While writing the unit test I found a hole in row version related to smalldatetime, not enough precion.
Still working on Validation support.
Need validation test for custom validation attribute, an object that implements IValidatableObject, and also using ComponentModel.DataAnnotations.CustomValidation.
Finishing-up support for validation.
IDatabaseTypesFactory.ShouldPerformValidation was added to indicate if validation should be performed. Defaults to true.
Wrote unit tests for the ORM validation calls.
Documented thrown exceptions.
Working on Nuget package.
Data Provider libraries are now included on the nuget package. See DataProviders folder
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.