Опублкован NuGet-пакет Flexberry ORM 5.1.0
Это последняя версия, которая собирается только под Microsoft .NET Framework 4.5. Последующие версии будут совместимы с .NET Standard 2.0.
Изменения в ORM 5.1.0
Новое в 5.1.0
FunctionBuilder
implementsBuildLike(VariableDef, string)
functions.DbTransactionWrapper
class to wrapIDbConnection
andIDbTransaction
.- Interfaces
IConverterToQueryValueString
andIConvertibleToQueryValueString
to control the conversion of objects to a query string. - Interfaces
INotifyUpdateObjects
,INotifyUpdateObject
,INotifyUpdateProperty
andINotifyUpdatePropertyByType
for notify when data is updates. - Support of postgres table suffix and prefix modifiers.
- Differ table modifiers
from
andjoin
expressions. - Property AuditService.DetailedLogEnabled to disable audit log info.
- Interface
IExportStringedObjectViewService
for fast export service based on ObjectStringDataView type.
Изменено в 5.1.0
- ChangesToSqlBTMonitor now split queries by ‘;’.
- Signatures of the method
GenerateQueriesForUpdateObjects
and its overloads. - Upgraded Npgsql version to 3.2.6.
- Optimize left join with SQLDataService.GenerateSQL methods for some cases.
- Moved group audit from SQLDataService to AuditService.
Исправлено в 5.1.0
- Parsing nullable guids with PKHelper.GetKeys method.
- Getting property storage name when resolving circular dependencies.
- Getting Unity container by replace UnityFactory.CreateContainer to UnityFactory.GetContainer.
- Loading details to delete on deleting aggregator object (using single transaction).
- Appending view properties from not stored prop expression.
- Updating empty array via
SQLDataService.UpdateObjects
(connections remain opened). - Updating array with no changes via
SQLDataService.UpdateObjects
(connections remain opened). - Incorrect altered state of masters after loading in some cases.
- Setting LoadingState.Loaded to DataObject after loading.
- Objects updating order if exists cycle in dependencies graph of them.
- DbTransactionWrapper commit and rollback over expired connections.
- Null GetHandler or SetHandler via cache dictionary.
- Rethrowing exception while handling special scenario via UpdateObjects.
- Fix loading __PrimaryKey property of NotStored master.
- Fix InitDataCopy for already loaded details.
- Removed usage of DataServiceProvider.DataService for ExternalLangDef.
- Auditing objects with Unaltered status and Deleted not presented in database.
- Removed memory lock by business server (possible memory leakage).
- Removed caching business server (fix multi-threading).
- Getting new instance of audit data service on every write audit operation.
- Getting inherited business servers.
- Concurrent getting business servers.
- Ordering in PostgresDataService when used RowNumber.
Опублкован NuGet-пакет Flexberry ORM 6.0.0
Изменения в ORM 6.0.0
Новое в 6.0.0
- .NET Standard 2.0 implementation. NuGet package contains
net45
andnetstandard2.0
targets.
Изменено в 6.0.0
- [BREAKINGCHANGE] MSSQLDataService, PostgresDataService, OracleDataService in it’s own NuGet packages.
- [BREAKINGCHANGE]
ToolXML.DataObject2XMLDocument
usesToolBinarySerializer
for serializeDynamicProperties
. - [BREAKINGCHANGE]
CurrentUserService
support only windows users. - [BREAKINGCHANGE]
DataServiceProvider.IsWebApp
now always returnfalse
. - [BREAKINGCHANGE]
ChangesToSqlBTMonitor
class moved toICSSoft.STORMNET.Business
assembly. - [BREAKINGCHANGE]
DRDataService
class moved toICSSoft.STORMNET.Business.MSSQLDataService
assembly. - [BREAKINGCHANGE] Assembly
ExternalLangDef
renamed toICSSoft.STORMNET.Business.ExternalLangDef
. - [BREAKINGCHANGE] Assembly
CurrentUserService
renamed toNewPlatform.Flexberry.ORM.CurrentUserService
. - [BREAKINGCHANGE] Assembly
UnityFactory
renamed toNewPlatform.Flexberry.ORM.UnityFactory
.
Удалено в 6.0.0
Information.GetPropertyDataFormat
method.- [BREAKINGCHANGE]
CurrentWebHttpUser
class. ServiceContract
forIAudit
,IAuditWcfService
interfaces.RemoteAuditController
class.CurrentUserFromLockService
class.ICSSoft.STORMNET.Business.ODBCDataService
assembly.
Исправлено в 6.0.0
ControlProviderAttribute(string)
constructor ignores type loading error.- Multiple concurrency fixes.
Инструменты генерации
Также были обновлены инструменты генерации, поэтому важно обновить Flexberry Designer до последней версии с сайта https://designer.flexberry.net.
Важно учесть при обновлении
Наиболее важными пунктами при обновлении ORM до версии 6 являются следующие:
- Пакета
NewPlatform.Flexberry.ORM
теперь недостаточно для функционирования системы - для каждой конкретной СУБД теперь есть свой отдельный пакет, например,NewPlatform.Flexberry.ORM.PostgresDataService
. CurrentUserService
больше не содержит реализацию для web, если нужно, переопределяйте на прикладном уровне.- Переименованы некоторые сборки, что потребует изменений в конфигурационных файлах.
В качестве примера можно использовать вот этот PR.
Исходный код
Исходный код Flexberry ORM доступен на GitHub под лицензией MIT. Изменения относительно версии 5.0.0 можно оценить по этому PR. Если есть необходимость внести исправление в код ORM, это можно сделать следующим образом:
- Добвить issue с описанием проблемы или предложения
- Сделать
Fork
репозитория - В этом форке выполнить доработку, добавить юнит-тест
- Создать Pull Request в upstream-репозиторий Flexberry ORM
- По аналогичной схеме внести доработки в документацию и сделать PR в репозиторий с документацией