Symbiotic_Micro_ORM_Net_Standard_x64 2.0.4

.NET Standard 2.0 .NET Framework 4.6.1
There is a newer version of this package available.
See the version list below for details.
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
<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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Symbiotic_Micro_ORM_Net_Standard_x64, 2.0.4"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. 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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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 Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
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 161 1/29/2022
3.2.0-rc 128 10/20/2021
3.1.0 402 8/31/2020
3.1.0-rc 325 8/23/2020
3.0.0 690 1/15/2019
3.0.0-rc 504 1/13/2019
2.1.6 707 8/18/2018
2.1.5 787 8/8/2018
2.0.4 820 1/3/2018
2.0.2 892 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.