|
24 | 24 | types. (IDbCommand => DbCommand, ...) |
25 | 25 | * The Date NHibernate type will no more replace by null values below its base value (which was year 1753). |
26 | 26 | Its base value is now DateTime.MinValue. Its configuration parameter is obsolete. |
| 27 | + * NHibernate type DateTimeType, which is the default for a .Net DateTime, does no more cut milliseconds. |
| 28 | + Use DateTimeNoMsType if you wish to have milliseconds cut. It applies to its Local/Utc counterparts too. |
| 29 | + * LocalDateTimeType and UtcDateTimeType do no more accept being set with value having a non-matching kind, |
| 30 | + they throw instead. |
| 31 | + * DbTimestamp will now round the retrieved value according to Dialect.TimestampResolutionInTicks. |
| 32 | + * When an object typed property is mapped to a NHibernate timestamp, setting an invalid object in the |
| 33 | + property will now throw at flush instead of replacing it with DateTime.Now. |
27 | 34 | * Transaction scopes handling has undergone a major rework. See NH-4011 for full details. |
28 | 35 | ** More transaction promotion to distributed may occur if you use the "flush on commit" feature with |
29 | 36 | transaction scopes. Explicitly flush your session instead. Ensure it does not occur by disabling |
|
47 | 54 | changes. See https://github.com/nhibernate/nhibernate-core/pull/568 changes to test files for examples. |
48 | 55 | * NHibernate Linq internals have undergone some minor changes which may breaks custom Linq providers due |
49 | 56 | to method signature changes and additional methods to implement. |
| 57 | + * IMapping interface has an additional Dialect member. ISessionFactoryImplementor has lost it, since it |
| 58 | + gains it back through IMapping. |
| 59 | + * IDriver.ExpandQueryParameters and DriverBase.CloneParameter take an additional argument. |
50 | 60 | * NullableType, its descendent (notably all PrimitiveType) and IUserType value getters and setters now |
51 | 61 | take the session as an argument. This should mainly impact custom types implementors. |
52 | 62 | * EmitUtil is now internal and has been cleaned of unused members. |
|
64 | 74 | * Sessions concrete classes constructors have been changed. (It is not expected for them to be used |
65 | 75 | directly.) |
66 | 76 | * Obsolete setting interceptors.beforetransactioncompletion_ignore_exceptions is dropped. |
| 77 | + * SQL Server 2008+ dialects now use datetime2 instead of datetime for all date time types, including |
| 78 | + timestamp. This can be reverted with sql_types.keep_datetime setting. |
| 79 | + * SQL Server 2008+ timestamp resolution is now 100ns in accordance with datetime2 capabilities, down from |
| 80 | + 10ms previously. This can be reverted with sql_types.keep_datetime setting. |
| 81 | + * Oracle 9g+ dialects now use timestamp(7) for all date time types, instead of timestamp(4). |
| 82 | + * Oracle 9g+ timestamp resolution is now 100ns in accordance with timestamp(7) capabilities, down from |
| 83 | + 100µs previously. |
67 | 84 | * Oracle: Hbm2dll will no-more choose N- prefixed types for typing Unicode string columns by default. |
68 | 85 | This can be changed with oracle.use_n_prefixed_types_for_unicode setting, which will furthermore |
69 | 86 | control DbCommand parameters typing accordingly. See NH-4062. |
70 | 87 | * SqlServerCe: the id generator "native" will now resolve as table-hilo instead of identity. |
71 | 88 | * Firebird: timestamp resolution is now 1ms. |
72 | 89 | * PostgreSQL: if Npgsql v3 or later is used, time DbParameters will be fetch with TimeSpan instead of |
73 | 90 | DateTime. |
| 91 | + * ODBC: String parameter length will no more be specified by the OdbcDriver. |
74 | 92 |
|
75 | 93 | ** Sub-task |
76 | 94 | * [NH-3956] - Native SQL query plan may get wrong plan |
|
104 | 122 | * [NH-3850] - .Count(), .Any() and other aggregates return only first result on polymorphic queries |
105 | 123 | * [NH-3885] - ThreadSafeDictionary is not threadsafe |
106 | 124 | * [NH-3889] - Coalesce on entity in sub-select causes incorrect SQL |
| 125 | + * [NH-3895] - Problem with DateTime fractional seconds on ODBC for MS SQL Server |
107 | 126 | * [NH-3911] - Reflection Optimizer tries to cast values to getter type in setter |
108 | 127 | * [NH-3913] - Component has bag of child components. Child property mapping ignored |
109 | 128 | * [NH-3931] - Invalid order of child inserts when using TPH inheritance |
|
128 | 147 | * [NH-4038] - Mapping a TimeSpan in a collection component mapping maps as a BIGINT |
129 | 148 | * [NH-4046] - Default length too short for variable length types with SAP Anywhere / ASE |
130 | 149 | * [NH-4077] - Possible race condition in ActionQueue.ExecuteActions |
| 150 | + * [NH-4083] - ODBC nvarchar parameter corruption |
| 151 | + * [NH-4084] - DbTimestamp cause stale update exception |
| 152 | + * [NH-4086] - TimeType may lose fractional seconds |
131 | 153 |
|
132 | 154 | ** New Feature |
133 | 155 | * [NH-1530] - Add support for XmlDocType and XDocType for Oracle |
|
172 | 194 | * [NH-3744] - Fixed spelling of ContraintOrderedTableKeyColumnClosure method |
173 | 195 | * [NH-3750] - Use NuGet to refer to Remotion.Linq (unmerge ReMotion.Linq) |
174 | 196 | * [NH-3877] - Target .NET 4.6.1 |
175 | | - * [NH-3884] - Default DateTimeType can not be overridden for SQL queries |
176 | 197 | * [NH-3900] - Upgrade to Nunit 3.x |
| 198 | + * [NH-3919] - Clean up and harmonize datetime types with regards to different dialects |
177 | 199 | * [NH-3927] - Switch to SemVer version scheme |
178 | 200 | * [NH-3932] - Merge() may fire unnecessary updates if collection and version mapping exists |
179 | 201 | * [NH-3943] - Use NuGet to reference packages instead of local copies |
|
0 commit comments