|
| 1 | +Build 5.0.0 |
| 2 | +============================= |
| 3 | + |
| 4 | +** Highlights |
| 5 | + * IO bound methods have gained an async counterpart. Not intended for parallelism, make sure to await each |
| 6 | + call before further interacting with a session and its queries. |
| 7 | + * Strongly typed DML operation (insert/update/delete) are now available as Linq extensions on queryables. |
| 8 | + * Entities collections can be queried with .AsQueryable() Linq extension without being fully loaded. |
| 9 | + * Reference documentation has been curated and completed, notably with a Linq section. |
| 10 | + http://nhibernate.info/doc/nhibernate-reference/index.html |
| 11 | + |
| 12 | +** Known BREAKING CHANGES from NH4.1.1.GA to 5.0.0 |
| 13 | + |
| 14 | + NHibernate now targets .Net 4.6.1. |
| 15 | + |
| 16 | + Remotion.Linq and Antlr3 libraries are no more merged in the NHibernate library, |
| 17 | + and must be deployed along NHibernate library. (NuGet will reference them.) |
| 18 | + |
| 19 | + Classes and members which were flagged as obsolete in the NHibernate 4.x series have been dropped. |
| 20 | + Prior to upgrading, fix any obsolete warning according to its message. See NH-4075 and NH-3684 for a list. |
| 21 | + |
| 22 | + ##### Possible Breaking Changes ##### |
| 23 | + * All members exposing some System.Data types have been changed for corresponding System.Data.Common |
| 24 | + types. (IDbCommand => DbCommand, ...) |
| 25 | + * The Date NHibernate type will no more replace by null values below its base value (which was year 1753). |
| 26 | + Its base value is now DateTime.MinValue. Its configuration parameter is obsolete. |
| 27 | + * Transaction scopes handling has undergone a major rework. See NH-4011 for full details. |
| 28 | + ** More transaction promotion to distributed may occur if you use the "flush on commit" feature with |
| 29 | + transaction scopes. Explicitly flush your session instead. Ensure it does not occur by disabling |
| 30 | + transaction.use_connection_on_system_events setting. |
| 31 | + ** After transaction events no more allow using the connection when they are raised from a scope |
| 32 | + completion. |
| 33 | + ** Connection enlistment in ambient transaction is now enforced by NHibernate by default. |
| 34 | + ** The connection releasing is no more directly triggered by a scope completion, but by later |
| 35 | + interactions with the session. |
| 36 | + * AdoNetWithDistributedTransactionFactory has been renamed AdoNetWithSystemTransactionFactory. |
| 37 | + * Subcriteria.UniqueResult<T> for value types now return default(T) when result is null, as was |
| 38 | + already doing CriteriaImpl.UniqueResult<T>. |
| 39 | + * AliasToBeanResultTransformer property/field resolution logic has changed for supporting members |
| 40 | + which names differ only by case. See NH-3693 last comments for details. |
| 41 | + * Linq extension methods marked with attribute LinqExtensionMethod will no more be evaluated |
| 42 | + in-memory prior to query execution when they do not depend on query results, but will always be |
| 43 | + translated to their corresponding SQL call. This can be changed with a parameter of the attribute. |
| 44 | + * Linq Query methods are now native members of ISession and IStatelessSession instead of being |
| 45 | + extension methods. |
| 46 | + * Linq provider now use Remotion.Linq v2, which may break Linq provider extensions, mainly due to names |
| 47 | + changes. See https://github.com/nhibernate/nhibernate-core/pull/568 changes to test files for examples. |
| 48 | + * NHibernate Linq internals have undergone some minor changes which may breaks custom Linq providers due |
| 49 | + to method signature changes and additional methods to implement. |
| 50 | + * NullableType, its descendent (notably all PrimitiveType) and IUserType value getters and setters now |
| 51 | + take the session as an argument. This should mainly impact custom types implementors. |
| 52 | + * EmitUtil is now internal and has been cleaned of unused members. |
| 53 | + * ContraintOrderedTableKeyColumnClosure has been renamed ConstraintOrderedTableKeyColumnClosure. |
| 54 | + * enabledFilter parameter has been removed from IProjection.ToSqlString and ICriterion.ToSqlString methods. |
| 55 | + * Proxy factory and proxy cache now use TypeInfo instead of System.Type. This should be transparent for |
| 56 | + most users. |
| 57 | + * Exceptions which were based on ApplicationException are now based on Exception: HibernateException, |
| 58 | + ParserException and AssertionFailure. The logger factory which could throw a bare ApplicationException |
| 59 | + now throws an InstantiationException instead. |
| 60 | + * ThreadSafeDictionary class has been removed. Use System.Collections.Concurrent.ConcurrentDictionary |
| 61 | + instead. |
| 62 | + * Entity mode switching capability, which had never been fully implemented, is dropped. |
| 63 | + * BytecodeProviderImpl, intended for .Net Framework 1 and broken, is dropped. |
| 64 | + * Sessions concrete classes constructors have been changed. (It is not expected for them to be used |
| 65 | + directly.) |
| 66 | + * Obsolete setting interceptors.beforetransactioncompletion_ignore_exceptions is dropped. |
| 67 | + * Oracle: Hbm2dll will no-more choose N- prefixed types for typing Unicode string columns by default. |
| 68 | + This can be changed with oracle.use_n_prefixed_types_for_unicode setting, which will furthermore |
| 69 | + control DbCommand parameters typing accordingly. See NH-4062. |
| 70 | + * SqlServerCe: the id generator "native" will now resolve as table-hilo instead of identity. |
| 71 | + * Firebird: timestamp resolution is now 1ms. |
| 72 | + * PostgreSQL: if Npgsql v3 or later is used, time DbParameters will be fetch with TimeSpan instead of |
| 73 | + DateTime. |
| 74 | + |
| 75 | +** Sub-task |
| 76 | + * [NH-3956] - Native SQL query plan may get wrong plan |
| 77 | + * [NH-3957] - Second level query cache may yields wrong cache entry |
| 78 | + * [NH-4001] - Remove ThreadSafeDictionary |
| 79 | + |
| 80 | +** Bug |
| 81 | + * [NH-926] - Identity insert fails with SQL Ce dialect and aggressive connection release mode. |
| 82 | + * [NH-1752] - NHibernate Date type converts to NULL |
| 83 | + * [NH-1904] - Protected properties and public properties cannot have the same name with different case |
| 84 | + * [NH-2029] - filter-def's use-many-to-one=false should take ON into consideration |
| 85 | + * [NH-2145] - AssertionFailure exception at ISession.Save |
| 86 | + * [NH-2176] - Consecutive TransactionScopes cannot be used in same NHibernate session |
| 87 | + * [NH-2238] - "DTC transaction prepare phase failed" when UPDATE:ing in a promoted TransactionScope |
| 88 | + * [NH-2241] - Batch Insert using stateless session when using second level cache throws exception when unable to determine transient status |
| 89 | + * [NH-2928] - Connections can only be closed after the Transaction is completed |
| 90 | + * [NH-3023] - Deadlocks may cause connection pool corruption when in a distributed transaction |
| 91 | + * [NH-3078] - TimeAsTimeSpanType issue when using Sybase Advantage Database |
| 92 | + * [NH-3100] - Problem in use if condition for nullable boolean in linq to NHibernate |
| 93 | + * [NH-3114] - Collection inside Component cannot be mapped to a different table |
| 94 | + * [NH-3227] - InvalidOperationException in AbstractBatcher when distributed transaction is aborted |
| 95 | + * [NH-3247] - Char value gets 'cached' in Where-queries |
| 96 | + * [NH-3374] - Session.Merge throws InvalidCastException when using a Lazy bytes[] property |
| 97 | + * [NH-3600] - ISession.Save returns wrong Id |
| 98 | + * [NH-3665] - FirstOrDefault() broken since 3.3.4 and 3.4.0 |
| 99 | + * [NH-3693] - AliasToBeanResultTransformerFixture fails under Firebird |
| 100 | + * [NH-3755] - Proxy exception for multiple joined-subclass |
| 101 | + * [NH-3757] - Dynamic entity mapped with entity-name cannot have a component of a fixed class |
| 102 | + * [NH-3793] - Attribute entity-name on <key-many-to-one> is ignored, causing mapping exception |
| 103 | + * [NH-3845] - OfType fails with polymorphism |
| 104 | + * [NH-3850] - .Count(), .Any() and other aggregates return only first result on polymorphic queries |
| 105 | + * [NH-3885] - ThreadSafeDictionary is not threadsafe |
| 106 | + * [NH-3889] - Coalesce on entity in sub-select causes incorrect SQL |
| 107 | + * [NH-3911] - Reflection Optimizer tries to cast values to getter type in setter |
| 108 | + * [NH-3913] - Component has bag of child components. Child property mapping ignored |
| 109 | + * [NH-3931] - Invalid order of child inserts when using TPH inheritance |
| 110 | + * [NH-3946] - Linq where "is base class" doesn't get subclasses |
| 111 | + * [NH-3948] - CheckAndUpdateSessionStatus() called twice in CreateFilter method inside SessionImpl class |
| 112 | + * [NH-3950] - FutureValue fails on Linq queries defining a PostExecuteTransformer |
| 113 | + * [NH-3954] - Dynamic proxy cache may yield a wrong proxy |
| 114 | + * [NH-3955] - Unreliable Equals implementation |
| 115 | + * [NH-3961] - Invalid date parameter format with nullables and MappedAs |
| 116 | + * [NH-3966] - Missing command set dispose in batchers |
| 117 | + * [NH-3968] - Distributed transaction cannot be committed because AdoNetWithDistributedTransactionFactory tries to write data by using locked sqlConnection |
| 118 | + * [NH-3969] - Firebird: TimestampResolutionInTicks should be 1ms |
| 119 | + * [NH-3977] - Thread safety weaknesses of MapBasedSessionContext |
| 120 | + * [NH-3981] - CollectionHelper.DictionaryEquals throws |
| 121 | + * [NH-3985] - ObjectDisposedException is thrown when using a child session after having previously disposed of another child session. |
| 122 | + * [NH-3998] - SqlServer CE: "The column aliases must be unique" exception is thrown in some tests |
| 123 | + * [NH-4013] - SqlClientBatchingBatcher CloseCommands contract violated |
| 124 | + * [NH-4022] - MsSql2012Dialect: Invalid drop sequence statement |
| 125 | + * [NH-4024] - ODBC failures with time |
| 126 | + * [NH-4027] - Missing disposals of enumerators |
| 127 | + * [NH-4035] - Teardown failure should not prevent cleanup |
| 128 | + * [NH-4038] - Mapping a TimeSpan in a collection component mapping maps as a BIGINT |
| 129 | + * [NH-4046] - Default length too short for variable length types with SAP Anywhere / ASE |
| 130 | + * [NH-4077] - Possible race condition in ActionQueue.ExecuteActions |
| 131 | + |
| 132 | +** New Feature |
| 133 | + * [NH-1530] - Add support for XmlDocType and XDocType for Oracle |
| 134 | + * [NH-2319] - IQueryable support for persistent collections |
| 135 | + * [NH-2520] - New type TimestampUtc |
| 136 | + * [NH-3488] - Strongly Typed Updates and Deletes |
| 137 | + * [NH-3771] - Implement setting to enable Batch Update with Optimistic Locking control |
| 138 | + * [NH-3905] - Support async: Blocking IO leads to ThreadPool starvation and limits scalability |
| 139 | + * [NH-3934] - Add methods WhereNot(ICriterion) and AndNot(ICriterion) in QueryOver |
| 140 | + * [NH-3951] - Support .All() result operator |
| 141 | + * [NH-3996] - Postgres: add support for XmlDocType and XDocType |
| 142 | + * [NH-4009] - Allow marking a Linq extension as db only |
| 143 | + * [NH-4017] - Handle Time parameter conversion for newer Npgsql |
| 144 | + * [NH-4018] - Port AutoJoinTransaction feature |
| 145 | + * [NH-4028] - Support inconclusive tests in result comparison |
| 146 | + * [NH-4031] - Add an AsyncLocalSessionContext |
| 147 | + * [NH-4032] - Supports multiple factories with ThreadStaticSessionContext |
| 148 | + * [NH-4062] - Properly handle Oracle Unicode support dual model |
| 149 | + |
| 150 | +** Task |
| 151 | + * [NH-3683] - Fix Compilation Warnings |
| 152 | + * [NH-3958] - Reference documentation: missing types |
| 153 | + * [NH-3959] - Fix documentation typos |
| 154 | + * [NH-3999] - Document effect of quoted identifier on case sensitivity |
| 155 | + * [NH-4000] - Release 5.0 |
| 156 | + * [NH-4004] - Restrict tests running on SQL CE |
| 157 | + * [NH-4051] - Replace System.Linq.Dynamic with System.Linq.Dynamic.Core in tests |
| 158 | + * [NH-4057] - Fix tests for MySql |
| 159 | + * [NH-4058] - Fix Oracle managed failing tests |
| 160 | + * [NH-4063] - Fix ODBC failing tests |
| 161 | + |
| 162 | +** Improvement |
| 163 | + * [NH-1851] - Mapping a TimeSpan as TimeAsTimeSpan for MySQL |
| 164 | + * [NH-2444] - Document linq provider |
| 165 | + * [NH-3094] - Linq does not support unary plus and unary minus operators |
| 166 | + * [NH-3370] - Remove warning about "NHibernate.Type.CustomType -- the custom type * is not serializable" |
| 167 | + * [NH-3386] - Linq OrderBy NewID() |
| 168 | + * [NH-3431] - Replace System.Data with System.Data.Common |
| 169 | + * [NH-3578] - Subcriteria.UniqueResult<T> for value types should return default(T), same as CriteriaImpl.UniqueResult<T> when result is null |
| 170 | + * [NH-3669] - Query should be instance method of ISession |
| 171 | + * [NH-3723] - Some tests are failing when log level set to DEBUG |
| 172 | + * [NH-3744] - Fixed spelling of ContraintOrderedTableKeyColumnClosure method |
| 173 | + * [NH-3750] - Use NuGet to refer to Remotion.Linq (unmerge ReMotion.Linq) |
| 174 | + * [NH-3877] - Target .NET 4.6.1 |
| 175 | + * [NH-3884] - Default DateTimeType can not be overridden for SQL queries |
| 176 | + * [NH-3900] - Upgrade to Nunit 3.x |
| 177 | + * [NH-3927] - Switch to SemVer version scheme |
| 178 | + * [NH-3932] - Merge() may fire unnecessary updates if collection and version mapping exists |
| 179 | + * [NH-3943] - Use NuGet to reference packages instead of local copies |
| 180 | + * [NH-3944] - Upgrade to ReLinq 2 |
| 181 | + * [NH-3945] - Update to Antlr 3.5.1 |
| 182 | + * [NH-3952] - Cleanup EnumerableHelper usage |
| 183 | + * [NH-3962] - Build with MSBuild Tools 2017 (15) |
| 184 | + * [NH-3963] - More explicit error on MappedAs invalid usage. |
| 185 | + * [NH-3964] - Refactor reflection patterns |
| 186 | + * [NH-3970] - TestCase base class: avoid hiding test failure on tear-down |
| 187 | + * [NH-3973] - Remove enabledFilter parameter from IProjection.ToSqlString and ICriterion.ToSqlString methods |
| 188 | + * [NH-3975] - Synchronize some features dialect support properties |
| 189 | + * [NH-3978] - Extract IDatabaseMetadata from DatabaseMetadata |
| 190 | + * [NH-3987] - Re-implement NhQueryable options |
| 191 | + * [NH-3988] - Replace ApplicationException base class with just Exception |
| 192 | + * [NH-3990] - Upgrade to VS2017 Project structure |
| 193 | + * [NH-3993] - Component Element Customizer Missing ability to map non-public parents and composite element relations |
| 194 | + * [NH-3997] - SqlServer CE: Make native generator to be TableHiLoGenerator |
| 195 | + * [NH-4003] - Refactor session constructor |
| 196 | + * [NH-4010] - Visual Studio launcher still launches 2015 |
| 197 | + * [NH-4014] - Update SQLite assembly for tests |
| 198 | + * [NH-4015] - Update Npgsql driver and enable DTC for it in tests |
| 199 | + * [NH-4019] - Pass assembly into log4net functions |
| 200 | + * [NH-4020] - Use TypeBuilder.CreateTypeInfo() |
| 201 | + * [NH-4021] - Track all opened session in tests |
| 202 | + * [NH-4023] - Pass ISessionImplementor to all value setters and getters of nullable types |
| 203 | + * [NH-4026] - Update Firebird driver and use server in tests |
| 204 | + * [NH-4030] - Cleanup and xml doc of Linq Future extension |
| 205 | + * [NH-4033] - Update MySql connector used in tests |
| 206 | + * [NH-4034] - Flush all sessions participating in a transaction |
| 207 | + * [NH-4043] - Complete keyword registration needs done in dialects. |
| 208 | + * [NH-4049] - EmitUtil can be cleaned up |
| 209 | + * [NH-4050] - Use Task.Run instead of BeginInvoke in tests |
| 210 | + * [NH-4052] - Collect schema validation exceptions |
| 211 | + * [NH-4064] - Unmerge Antrl3.Runtime |
| 212 | + * [NH-4073] - Replace NHibernate.Web.Example with modern version |
| 213 | + * [NH-4076] - Do not resurrect session |
| 214 | + |
| 215 | +** Remove Feature |
| 216 | + * [NH-3684] - Remove <Time>Part Extension Methods of QueryOver |
| 217 | + * [NH-3700] - Remove CodeDom BytecodeProviderImpl |
| 218 | + * [NH-3722] - Remove entity mode switching capability |
| 219 | + * [NH-4075] - Remove code obsolete in 4.x |
| 220 | + |
| 221 | +** Meta Issue |
| 222 | + * [NH-4011] - Fix transaction scopes handling |
| 223 | + |
| 224 | + |
1 | 225 | Build 4.1.1.GA
|
2 | 226 | =============================
|
3 | 227 |
|
@@ -3062,7 +3286,7 @@ Alpha Build 0.3.0.0
|
3062 | 3286 | - BatcherImpl and PreparerImpl were combined and code cleaned up thanks to problems found when using Ngpsql (Martijn Boland).
|
3063 | 3287 | - ITransaction is now responsible for joining IDbCommand to IDbTransaction instead of IBatcher - if applicable.
|
3064 | 3288 | - Modified code to help improve performance of Drivers that don't support multiple Open DataReaders on a single IDbConnection.
|
3065 |
| -- Fixed bug with hbm2net and VelocityRenderer throwing Exception (Carlos Guzm�n �lvarez & Peter Smulovics). |
| 3289 | +- Fixed bug with hbm2net and VelocityRenderer throwing Exception (Carlos Guzmán Álvarez & Peter Smulovics). |
3066 | 3290 | - Clean up of hbm2net (Peter Smulovics).
|
3067 | 3291 | - Modified internals of AbstractEntityPersister to help with buiding on Mono (Oliver Weichhold).
|
3068 | 3292 | - Renamed nhibernate.build to NHibernate.build to help with building on Mono (Oliver Weichhold).
|
@@ -3114,10 +3338,10 @@ PreAlpha Build 0.1.0.0
|
3114 | 3338 | - nhibernate-configuration-2.0.xsd schema was updated to .net friendly names and all cfg.xml files are now validated.
|
3115 | 3339 | - Fixed bug with classes having dynamic-insert and dynamic-update causing IndexOutOfRangeExceptions.
|
3116 | 3340 | - Modified length of string for CultureInfoType.
|
3117 |
| -- Added Firebird fixes contributed by Carlos Guzm�n �lvarez. |
| 3341 | +- Added Firebird fixes contributed by Carlos Guzmán Álvarez. |
3118 | 3342 | - Changed TimestampType.Set to behaive like hibernate. Will not write a null value anymore - instead replaces it with DateTime.Now.
|
3119 | 3343 | - Removed IVersionType interface from DecimalType.
|
3120 |
| -- Add PropertyExpressions contributed by Carlos Guzm�n �lvarez. |
| 3344 | +- Add PropertyExpressions contributed by Carlos Guzmán Álvarez. |
3121 | 3345 | - Fixed bug with referencing joined classes properties in hql.
|
3122 | 3346 | - Fixed IndexOutOfRangeException with NormalizedEntityPersister for versioned entities.
|
3123 | 3347 | - Added ObjectType to TypeFactory and NHibernate.
|
|
0 commit comments