Symbiotic_x64 4.0.3

dotnet add package Symbiotic_x64 --version 4.0.3
NuGet\Install-Package Symbiotic_x64 -Version 4.0.3
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_x64" Version="4.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Symbiotic_x64 --version 4.0.3
#r "nuget: Symbiotic_x64, 4.0.3"
#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_x64 as a Cake Addin
#addin nuget:?package=Symbiotic_x64&version=4.0.3

// Install Symbiotic_x64 as a Cake Tool
#tool nuget:?package=Symbiotic_x64&version=4.0.3

Feature summary:
.  Small and simple to use and understand.
.  Single file reference needed.
.  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.
.  Sql Server bulk insert support.
.  Lazy initialization support, with child sql override.
.  Change trackng support to history tables.
.  Supported databases: Sql Server / Express / Local DB, 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.

Product Compatible and additional computed target framework versions.
.NET Framework net35 is compatible.  net40 was computed.  net403 was computed.  net45 was computed.  net451 is compatible.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.3 152 4/9/2014
4.0.2 47 3/20/2014
4.0.1 47 2/21/2014
3.1.0.3 43 6/3/2013
3.1.0.2 42 3/6/2013
3.1.0.1 42 2/9/2013
3.1.0 49 2/1/2013
3.0.0.2 43 12/20/2012
3.0.0.1 44 12/19/2012
3.0.0 47 12/19/2012
2.6.4 46 11/9/2012
2.6.3 46 11/2/2012
2.6.2 52 10/30/2012
2.6.1 48 10/25/2012

Version: 4.0.3.0

31-Mar-2014
Started working on support for PostgreSql.
Researching support for Firebird database.

02-Apr-2014
Creates are working for flat and hierarchical objects using PostgreSql database.

04-Apr-2014
Keep getting time-out exception when trying to open a connection. Not using all 100 connections, so doing some research.
Tried turning on the NpgsqlEventLog to see DB provider logs, seems to crash the Unit tests, just stops running.
PostgreSql doesn't seem to handle connections, pooling as well as other databases.

05-Apr-2014
Seems the ORM is not closing all the connections when a exception happens.
The Unit tests perform concurrency tests which generated expected concurrency errors,
this creates many exceptions and the connections were not closed.

I'm sure the garbage collector will get to them, but apparently it's not quick enough for PostgreSql.
 
Cases during exceptions are now closing the connections.

All tests passed for PostgreSql database.

Change IDatabaseTypesFactory to include another new method: ObtainConnectionStringFromConfig