Logging: Implemented tracking of related events. RelatedEvents data structure can be used to get all logged events of a given entity, including events of its detail entities and its extensions.
Improved ORM DateTime precision from seconds to milliseconds.
Improved SqlUtility.GetDatabaseTime: Caching, fixed result type (DateTimeKind.Local instead of unspecified).
Improved handling of DateTime in EntityHistoryTest.cs
AuditDataModifications helper function reconstructs old values of entity from Common.Log for reporting.
RelatedEvents renamed to AuditRelatedEvents.
Renamed Log*Reader to Log*NoLock. Updated "Rhetos Server DOM.linq" with new log reading practices.
Filter on AuditRelatedEvents for DeletedItems and other minor improvements.
Log auditing performance and error-handling improvements.
SqlIndexMultiple 'TableName Action' is needed for reading deleted items from log (filters on DeletedItems) on 5 million log entries or more.
LogNoLock is renamed back to LogReader because it could serve similar purpose when the Log table is split horizontally to separate current and archive entries.
Added tags (extension points) for generating database columns.
Fixed auditing result for missing instance without "delete" log event.
Release 0.9.12.