And of course, thanks to you Alexander for all the work you put yourself in it!
Le mardi 10 octobre 2017 12:31:49 UTC+2, Alexander Zaytsev a écrit : > > NHibernate 5.0.0 is now released with 141 issues resolved. > > For a list of resolved issues, see the release notes: > https://github.com/nhibernate/nhibernate-core/blob/5.0.0/releasenotes.txt > > Binaries are available on NuGet and SourceForge: > https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.0/ > https://www.nuget.org/packages/NHibernate/5.0.0 > Highlights > > - IO bound methods have gained an async counterpart. Not intended for > parallelism, make sure to await each > call before further interacting with a session and its queries. > - Strongly typed DML operation (insert/update/delete) are now > available as Linq extensions on queryables. > - Entities collections can be queried with .AsQueryable() Linq > extension without being fully loaded. > - Reference documentation has been curated and completed, notably with > a Linq section. > http://nhibernate.info/doc/nhibernate-reference/index.html > > Known BREAKING CHANGES from NH4.1.1.GA to 5.0.0 > > NHibernate now targets .Net 4.6.1. > > Remotion.Linq and Antlr3 libraries are no more merged in the NHibernate > library, > and must be deployed along NHibernate library. (NuGet will reference them.) > > Classes and members which were flagged as obsolete in the NHibernate 4.x > series have been dropped. > Prior to upgrading, fix any obsolete warning according to its message. See > NH-4075 and NH-3684 for a list. > Possible Breaking Changes > > - All members exposing some System.Data types have been changed for > the corresponding System.Data.Common > types. (IDbCommand => DbCommand, ...) > - The Date NHibernate type will no more replace by null values below > its base value (which was year 1753). > Its base value is now DateTime.MinValue. Its configuration parameter > is obsolete. > - NHibernate type DateTimeType, which is the default for a .Net > DateTime, does no longer cut fractional > seconds. Use DateTimeNoMsType if you wish to have fractional seconds > cut. It applies to its Local/Utc > counterparts too. > - LocalDateTimeType and UtcDateTimeType do no more accept being set > with a value having a non-matching kind, > they throw instead. > - DbTimestamp will now round the retrieved value according to > Dialect.TimestampResolutionInTicks. > - When an object typed property is mapped to a NHibernate timestamp, > setting an invalid object in the > property will now throw at flush instead of replacing it with > DateTime.Now. > - Decimal type registration now correctly handles maximal precision. > For most dialects, it is 28, matching > the .Net limit. Values in mappings above maximal precision will be > reduced to maximal precision. > - Default cast types do no more resolve string to 255 length and > decimal to its default precision/scale for > the dialect. They resolve to 4000 length string and (28, 10) > precision/scale decimals by default, and are > trimmed down according to dialect. Those defaults can be overridden > with query.default_cast_length, > query.default_cast_precision and query.default_cast_scale settings. > - Transaction scopes handling has undergone a major rework. See > NH-4011 for full details. > - More transaction promotion to distributed may occur if you use > the "flush on commit" feature with > transaction scopes. Explicitly flush your session instead. Ensure > it does not occur by disabling > transaction.use_connection_on_system_events setting. > - After transaction events no more allow using the connection when > they are raised from a scope > completion. > - Connection enlistment in an ambient transaction is now enforced > by NHibernate by default. > - The connection releasing is no more directly triggered by a scope > completion, but by later > interactions with the session. > - AdoNetWithDistributedTransactionFactory has been renamed > AdoNetWithSystemTransactionFactory. > - Subcriteria.UniqueResult for value types now return default(T) when > result is null, as was > already doing CriteriaImpl.UniqueResult. > - AliasToBeanResultTransformer property/field resolution logic has > changed for supporting members > which names differ only by case. See NH-3693 last comments for details. > - Linq extension methods marked with attribute LinqExtensionMethod > will no more be evaluated > in-memory prior to query execution when they do not depend on query > results, but will always be > translated to their corresponding SQL call. This can be changed with a > parameter of the attribute. > - Linq Query methods are now native members of ISession and > IStatelessSession instead of being > extension methods. > - Linq provider now use Remotion.Linq v2, which may break Linq > provider extensions, mainly due to names > changes. See #568 > <https://github.com/nhibernate/nhibernate-core/pull/568> changes to > test files for examples. > - NHibernate Linq internals have undergone some minor changes which > may break custom Linq providers due > to method signature changes and additional methods to implement. > - IMapping interface has an additional Dialect member. > ISessionFactoryImplementor has lost it, since it > gains it back through IMapping. > - IDriver.ExpandQueryParameters and DriverBase.CloneParameter take an > additional argument. > - NullableType, its descendent (notably all PrimitiveType) and > IUserType value getters and setters now > take the session as an argument. This should mainly impact custom > types implementors. > - EmitUtil is now internal and has been cleaned of unused members. > - ContraintOrderedTableKeyColumnClosure has been renamed > ConstraintOrderedTableKeyColumnClosure. > - enabledFilter parameter has been removed from > IProjection.ToSqlString and ICriterion.ToSqlString methods. > - Proxy factory and proxy cache now use TypeInfo instead of > System.Type. This should be transparent for > most users. > - Exceptions which were based on ApplicationException are now based on > Exception: HibernateException, > ParserException and AssertionFailure. The logger factory which could > throw a bare ApplicationException > now throws an InstantiationException instead. > - ThreadSafeDictionary class has been removed. Use > System.Collections.Concurrent.ConcurrentDictionary > instead. > - Entity mode switching capability, which had never been fully > implemented, is dropped. > - BytecodeProviderImpl, intended for .Net Framework 1 and broken, is > dropped. > - Sessions concrete classes constructors have been changed. (It is not > expected for them to be used > directly.) > - Obsolete setting > interceptors.beforetransactioncompletion_ignore_exceptions is dropped. > - SQL Server 2008+ dialects now use datetime2 instead of datetime for > all date-time types, including > timestamp. This can be reverted with sql_types.keep_datetime setting. > - SQL Server 2008+ timestamp resolution is now 100ns in accordance > with datetime2 capabilities, down from > 10ms previously. This can be reverted with sql_types.keep_datetime > setting. > - Oracle 9g+ dialects now use timestamp(7) for all date time types, > instead of timestamp(4). > - Oracle 9g+ timestamp resolution is now 100ns in accordance with > timestamp(7) capabilities, down from > 100µs previously. > - Oracle: Hbm2dll will no-more choose N- prefixed types for typing > Unicode string columns by default. > This can be changed with oracle.use_n_prefixed_types_for_unicode > setting, which will furthermore > control DbCommand parameters typing accordingly. See NH-4062. > - SqlServerCe: the id generator "native" will now resolve as > table-hilo instead of identity. > - Firebird: timestamp resolution is now 1ms. > - PostgreSQL: if Npgsql v3 or later is used, time DbParameters will be > fetched as TimeSpan instead of > DateTime. > - DB2 & Oracle lite: decimal type registration was hardcoding > precision as 19 and was using length as > scale. It now uses precision and scale from mapping when specified, > and disregards length. > - Ingres & Sybase ASA: decimal type registration was hardcoding > precision as 18 and was using length as > scale. It now uses precision and scale from mapping when specified, > and disregards length. > - ODBC: String parameter length will no more be specified by the > OdbcDriver. > > > -- > > Huge thanks to everyone involved in this release, especially to Frédéric > Delaporte, Oskar Berggren, Boštjan Markežič (maca88), and Nathan Brown for > their invaluable help. > > Special thanks to Boštjan for awesome AsyncGenerator without which this > release would not be possible. > > Best Regards, > Alexander > -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to nhibernate-development+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.