nhibernate-core

NHibernate Object Relational Mapper

LGPL-2.1 License

Stars
2.1K

Bot releases are hidden (Show)

nhibernate-core - Release 5.1.5

Published by fredericDelaporte over 5 years ago

NHibernate 5.1.5 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.5/
https://www.nuget.org/packages/NHibernate/5.1.5

3 issues were resolved in this release.

nhibernate-core - Release 5.0.7

Published by fredericDelaporte over 5 years ago

NHibernate 5.0.7 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.7/
https://www.nuget.org/packages/NHibernate/5.0.7

3 issues were resolved in this release.

nhibernate-core - Release 5.2.4

Published by fredericDelaporte over 5 years ago

NHibernate 5.2.4 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.2.4/
https://www.nuget.org/packages/NHibernate/5.2.4

3 issues were resolved in this release.

nhibernate-core - Release 5.2.3

Published by fredericDelaporte almost 6 years ago

NHibernate 5.2.3 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.2.3/
https://www.nuget.org/packages/NHibernate/5.2.3

1 issue was resolved in this release.

nhibernate-core - Release 5.2.2

Published by fredericDelaporte almost 6 years ago

NHibernate 5.2.2 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.2.2/
https://www.nuget.org/packages/NHibernate/5.2.2

3 issues were resolved in this release.

nhibernate-core - Release 5.1.4

Published by fredericDelaporte almost 6 years ago

NHibernate 5.1.4 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.4/
https://www.nuget.org/packages/NHibernate/5.1.4

1 issue was resolved in this release.

nhibernate-core - Release 5.2.1

Published by fredericDelaporte almost 6 years ago

NHibernate 5.2.1 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.2.1/
https://www.nuget.org/packages/NHibernate/5.2.1

5 issues were resolved in this release.

nhibernate-core - Release 5.2.0

Published by fredericDelaporte almost 6 years ago

NHibernate 5.2.0 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.2.0/
https://www.nuget.org/packages/NHibernate/5.2.0

157 issues were resolved in this release.

Possible Breaking Changes
  • Entities having many non-readonly properties (including many-to-one) mapped to the same column will no more silently ignore the trouble till an insert or update is attempted. They will now cause the session factory built to fail. When mapping many properties to the same column, all of them excepted at most one should be mapped with insert="false" update="false".
  • Mappings mixing column elements and formula elements were taking into account only the formula elements. They will now take into account all elements.
  • Mappings mixing column elements and/or formula elements with a column attribute or a formula attribute were silently ignoring the attribute. They will now throw.
  • Mappings mixing a column attribute and a formula attribute were silently doing some best effort logic, either considering this as a two columns mapping, the second one being the formula (most cases), or only taking into account the formula (case of the <element> mapping). They will now throw.
  • NHibernate StringType has gained case-sensitivity and culture parameters. Previously it was ignoring parameters. This type may change its behavior for any mapping having defined parameters for this type. See #1833.
  • Mapping a dynamic component with a Hashtable property instead of an IDictionary is no more supported.
  • Querying a dynamic entity as a Hashtable instead of an IDictionary is no more supported.
  • With PostgreSQL, a HQL query using the bitwise xor operator ^ or bxor was exponentiating the arguments instead. It will now correctly apply the xor operator. (# operator in PostgreSQL SQL.)
  • Auto-generated constraint names will not be the same than the ones generated with previous NHibernate versions under .Net Framework. (Under .Net Core those names were anyway changing at each run.) The new ones will be the same whatever the runtime used for generating them.
  • Some generated PK names may change, if a table name has a quoting symbol at precise 13th character.
  • The WcfOperationSessionContext has been removed from .Net Core and .Net Standard builds. See #1842.
  • Some classes, which were not serializing the session factory, do now serialize it. In case of cross-process serialization/deserialization, these session factories will need to be properly named, by setting the session_factory_name setting in the configuration used to build them. This may mainly affect users of a distributed second level cache, if their cache implementation uses binary serialization. Affected classes are: CacheKey, CollectionKey, EntityKey and EntityUniqueKey.
  • Some types cache representations have changed. Out-of-process second level caches should be cleared after upgrading NHibernate, if some of those types were cached. The concerned types are: CultureInfoType, TypeType, UriType, XDocType, XmlDocType.
  • Dialect.GetIdentitySelectString was called by the entity persisters with inverted parameter values: the table name in the column parameter, and the column name in the table parameter. No built-in dialects were using the parameter values. External dialects which were using it inverted (causing issues to collection persisters, which have always supplied them correctly) needs to be accordingly adjusted.
  • Users providing through an IObjectFactory some custom logic for instantiating value types will now need to supply their own result transformer if they were using AliasToBeanResultTransformer with value types, or their own entity tuplizer if they were using value types as entities.
  • Users providing through an IObjectFactory some custom logic for instantiating their custom session contexts will have to implement ICurrentSessionContextWithFactory and add a parameterless public constructor to their custom context, and move their custom instantiation logic from IObjectsFactory.CreateInstance(Type, object[]) to IObjectsFactory.CreateInstance(Type).
  • Various *Binding classes of NHibernate will now always have their protected dialect field null. (These classes are not expected to be derived by users, as there is no way to use custom descendants with NHibernate.)
  • AbstractPersistentCollection.AfterInitialize does no more perform queued operations. Queued operations are now run by a later call to a new method, ApplyPendingOperations. Concrete custom implementations relying on the queued operations to be done by their base AfterInitialize will need to be changed accordingly.
nhibernate-core - Release 5.1.3

Published by fredericDelaporte over 6 years ago

NHibernate 5.1.3 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.3/
https://www.nuget.org/packages/NHibernate/5.1.3

nhibernate-core - Release 5.1.2

Published by fredericDelaporte over 6 years ago

NHibernate 5.1.2 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.2/
https://www.nuget.org/packages/NHibernate/5.1.2

nhibernate-core - Release 5.0.6

Published by fredericDelaporte over 6 years ago

NHibernate 5.0.6 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.6/
https://www.nuget.org/packages/NHibernate/5.0.6

nhibernate-core - Release 4.1.2.GA

Published by fredericDelaporte over 6 years ago

NHibernate 4.1.2.GA is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/4.1.2.GA/
https://www.nuget.org/packages/NHibernate/4.1.2.4000

nhibernate-core - Release 5.0.5

Published by fredericDelaporte over 6 years ago

NHibernate 5.0.5 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.5/
https://www.nuget.org/packages/NHibernate/5.0.5

nhibernate-core - Release 5.0.4

Published by fredericDelaporte over 6 years ago

NHibernate 5.0.4 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.4/
https://www.nuget.org/packages/NHibernate/5.0.4

nhibernate-core - Release 5.1.1

Published by fredericDelaporte over 6 years ago

NHibernate 5.1.1 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.1/
https://www.nuget.org/packages/NHibernate/5.1.1

nhibernate-core - Release 5.1.0

Published by fredericDelaporte over 6 years ago

NHibernate 5.1.0 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.1.0/
https://www.nuget.org/packages/NHibernate/5.1.0

Highlights
  • NHibernate has gained two new target frameworks: .Net Core 2.0 and .Net Standard 2.0. NHibernate NuGet package provides them, along with the .Net framework 4.6.1 build.
    For these new frameworks, some additional specificities or limitations apply:
    • Binary serialization is not supported - the user shall implement serialization surrogates for System.Type, FieldInfo, PropertyInfo, MethodInfo, ConstructorInfo, Delegate, etc.
    • SqlClient, Odbc, Oledb drivers are converted to ReflectionBasedDriver to avoid the extra dependencies.
    • CallSessionContext uses a static AsyncLocal field to mimic the CallContext behavior.
    • System transactions (transaction scopes) are untested, due to the lack of data providers supporting them.
  • 114 issues were resolved in this release.
Possible Breaking Changes
  • Since Ingres9Dialect is now supporting sequences, the enhanced-sequence identifier generator will default to using a sequence instead of a table. Revert to previous behavior by using its force_table_use parameter.
  • Some overridable methods of the Dialect base class and of MsSql2000Dialect have been obsoleted in favor of new methods. Dialects implementors need to override the replacing methods if they were overriding the obsolete ones, which are:
    • Dialect.GetIfNotExistsCreateConstraint(Table table, string name), replaced by GetIfNotExistsCreateConstraint(string catalog, string schema, string table, string name).
    • Dialect.GetIfNotExistsCreateConstraintEnd(Table table, string name), replaced by GetIfNotExistsCreateConstraintEnd(string catalog, string schema, string table, string name).
    • Dialect.GetIfExistsDropConstraint(Table table, string name), replaced by GetIfExistsDropConstraint(string catalog, string schema, string table, string name).
    • Dialect.GetIfExistsDropConstraintEnd(Table table, string name), replaced by GetIfExistsDropConstraintEnd(string catalog, string schema, string table, string name).
    • MsSql2000Dialect.GetSelectExistingObject(string name, Table table), replaced by GetSelectExistingObject(string catalog, string schema, string table, string name).
nhibernate-core - Release 5.0.3

Published by hazzik almost 7 years ago

NHibernate 5.0.3 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.3/
https://www.nuget.org/packages/NHibernate/5.0.3

nhibernate-core - Release 5.0.2

Published by fredericDelaporte almost 7 years ago

NHibernate 5.0.2 is now released.

For a list of resolved issues & pull requests, see the milestone or the release notes.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.2/
https://www.nuget.org/packages/NHibernate/5.0.2

nhibernate-core - Release 5.0.1

Published by fredericDelaporte almost 7 years ago

NHibernate 5.0.1 is now released with 13 issues resolved.

For a list of resolved issues, see milestone's issues. See the milestone or the release notes for viewing the pull requests too.

Binaries are available on NuGet and SourceForge:
https://sourceforge.net/projects/nhibernate/files/NHibernate/5.0.1/
https://www.nuget.org/packages/NHibernate/5.0.1

nhibernate-core - Release 5.0.0

Published by hazzik about 7 years ago

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.
  • Future queries with data provider not actually supporting them (not supporting mutliple queries in a single SQL command) are no more immediately executed at the .Future call. They are executed only when directly enumerated or when their IFutureEnumerable.GetEnumerable method is called. (This aligns them with the behavior of FutureValue.)
  • Dialects are now configurable. If you instantiate a dialect directly, make sure you call its Configure method, with as argument the properties of a NHibernate Configuration object. You may use instead Dialect.GetDialect methods, which configure the dialect before returning it.
  • 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_prepare 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 inequality implementation has been changed for supporting null, meaning that a "a != b" expression will now be considered matching if one side is null, while previously due to SQL null semantic it was considered non-matching. See NH-3100.
  • 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 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.