Symbiotic_Micro_ORM_Net_Standard_x64 2.0.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package Symbiotic_Micro_ORM_Net_Standard_x64 --version 2.0.4                
NuGet\Install-Package Symbiotic_Micro_ORM_Net_Standard_x64 -Version 2.0.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Symbiotic_Micro_ORM_Net_Standard_x64" Version="2.0.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Symbiotic_Micro_ORM_Net_Standard_x64 --version 2.0.4                
#r "nuget: Symbiotic_Micro_ORM_Net_Standard_x64, 2.0.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Symbiotic_Micro_ORM_Net_Standard_x64 as a Cake Addin
#addin nuget:?package=Symbiotic_Micro_ORM_Net_Standard_x64&version=2.0.4

// Install Symbiotic_Micro_ORM_Net_Standard_x64 as a Cake Tool
#tool nuget:?package=Symbiotic_Micro_ORM_Net_Standard_x64&version=2.0.4                

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.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.2.1 1,513 1/29/2022
3.2.0-rc 1,125 10/20/2021
3.1.0 1,628 8/31/2020
3.1.0-rc 1,399 8/23/2020
3.0.0 1,958 1/15/2019
3.0.0-rc 1,600 1/13/2019
2.1.6 1,906 8/18/2018
2.1.5 1,984 8/8/2018
2.0.4 2,033 1/3/2018
2.0.2 2,065 9/12/2017

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

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

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

Added new overloads InsertUpdateHierarchy to include a IEnumerable parameter and various related overloads with transactions.

Renamed some parameter names.
Added a bunch of method comments.

Added another ObtainItems overload method to IObjectLoader.

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

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

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.

Added method ShouldPerformValidation to ISqlQuery interface.

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.

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.