Skip to content

Commit 90b2e99

Browse files
committed
Merge branch 'master' into EnhanceEquality
# Conflicts: # src/NHibernate/Persister/Entity/IEntityPersister.cs
2 parents 326426d + 151194f commit 90b2e99

File tree

339 files changed

+15518
-3306
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

339 files changed

+15518
-3306
lines changed

Tools/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net461" />
88
<package id="NUnit.Extension.TeamCityEventListener" version="1.0.2" targetFramework="net461" />
99
<package id="NUnit.Extension.VSProjectLoader" version="3.6.0" targetFramework="net461" />
10-
<package id="CSharpAsyncGenerator.CommandLine" version="0.13.1" targetFramework="net461" />
10+
<package id="CSharpAsyncGenerator.CommandLine" version="0.13.2" targetFramework="net461" />
1111
<package id="vswhere" version="2.1.4" targetFramework="net461" />
1212
<package id="gitreleasemanager" version="0.7.0" targetFramework="net461" />
1313
</packages>

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 5.2.3.{build}
1+
version: 5.2.5.{build}
22
image: Visual Studio 2017
33
environment:
44
matrix:

build-common/NHibernate.props

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<PropertyGroup>
66
<VersionMajor Condition="'$(VersionMajor)' == ''">5</VersionMajor>
77
<VersionMinor Condition="'$(VersionMinor)' == ''">2</VersionMinor>
8-
<VersionPatch Condition="'$(VersionPatch)' == ''">3</VersionPatch>
8+
<VersionPatch Condition="'$(VersionPatch)' == ''">5</VersionPatch>
99
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
1010

1111
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
@@ -14,6 +14,9 @@
1414

1515
<NhAppTargetFrameworks Condition ="$(NhAppTargetFrameworks) == ''">net461;netcoreapp2.0</NhAppTargetFrameworks>
1616
<NhLibTargetFrameworks Condition ="$(NhLibTargetFrameworks) == ''">net461;netcoreapp2.0;netstandard2.0</NhLibTargetFrameworks>
17+
<NhNetFx>false</NhNetFx>
18+
<NhNetFx Condition="$(TargetFramework.StartsWith('net4'))">true</NhNetFx>
19+
<DefineConstants Condition="$(NhNetFx) AND $(NhVbNet) == ''" >NETFX;$(DefineConstants)</DefineConstants>
1720

1821
<Product>NHibernate</Product>
1922
<Company>NHibernate.info</Company>
@@ -26,8 +29,9 @@
2629
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
2730
<PackageLicenseExpression>LGPL-2.1-only</PackageLicenseExpression>
2831
<PackageReleaseNotes>https://github.com/nhibernate/nhibernate-core/blob/$(VersionPrefix)/releasenotes.txt</PackageReleaseNotes>
29-
<RepositoryUrl>https://github.com/nhibernate/nhibernate-core.git</RepositoryUrl>
30-
<RepositoryType>git</RepositoryType>
32+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
33+
<IncludeSymbols>true</IncludeSymbols>
34+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
3135

3236
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
3337
<TreatSpecificWarningsAsErrors />

build-common/common.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
<!-- This is used only for build folder -->
1515
<!-- TODO: Either remove or refactor to use NHibernate.props -->
16-
<property name="project.version" value="5.2.3" overwrite="false" />
17-
<property name="project.version.numeric" value="5.2.3" overwrite="false" />
16+
<property name="project.version" value="5.2.5" overwrite="false" />
17+
<property name="project.version.numeric" value="5.2.5" overwrite="false" />
1818

1919
<!-- properties used to connect to database for testing -->
2020
<include buildfile="nhibernate-properties.xml" />

default.build

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
>
77

88
<property name="root.dir" value="." />
9+
<property name="target.dir" value="net461" />
910

1011
<include buildfile="${root.dir}/build-common/common.xml" />
1112

@@ -144,7 +145,7 @@
144145
</target>
145146

146147
<target name="put-connection-settings-into-app-config">
147-
<property name="app.config" value="src/${test.file}/bin/${build.config}/net461/${test.file}.dll.config" />
148+
<property name="app.config" value="src/${test.file}/bin/${build.config}/${target.dir}/${test.file}.dll.config" />
148149
<call target="put-connection-settings-into-defined-app-config" />
149150
</target>
150151

@@ -156,15 +157,15 @@
156157

157158
<target name="run-tests" depends="find-nunit" description="Run NUnit tests">
158159
<exec program="${nunit-console}" failonerror="${not property::exists(test.file + '.IgnoreFail')}">
159-
<arg value="${root.dir}/src/${test.file}/bin/${build.config}/net461/${test.file}.dll" />
160+
<arg value="${root.dir}/src/${test.file}/bin/${build.config}/${target.dir}/${test.file}.dll" />
160161
<arg value="--result=${testresults.dir}/${test.file}.dll-results.xml;format=nunit2" />
161162
<arg value="--teamcity" if="${property::exists('config.teamcity')}" />
162163
<arg value="--x86" unless="${property::exists('nunit-x64')}" />
163164
</exec>
164165
</target>
165166

166167
<target name="remove-connection-settings-from-app-config">
167-
<property name="app.config" value="${root.dir}/src/${test.file}/bin/${build.config}/net461/${test.file}.dll.config" />
168+
<property name="app.config" value="${root.dir}/src/${test.file}/bin/${build.config}/${target.dir}/${test.file}.dll.config" />
168169

169170
<xmlpoke
170171
file="${app.config}"
@@ -246,7 +247,7 @@
246247
</fileset>
247248
</copy>
248249
<copy todir="${bin-pack.required}">
249-
<fileset basedir="${root.dir}/src/NHibernate/bin/${build.config}/net461/">
250+
<fileset basedir="${root.dir}/src/NHibernate/bin/${build.config}/${target.dir}/">
250251
<include name="Antlr3.Runtime.???" />
251252
<include name="Iesi.Collections.???" />
252253
<include name="NHibernate.???" />
@@ -263,20 +264,20 @@
263264
</fileset>
264265
</copy>
265266
<copy todir="${bin-pack.tests}">
266-
<fileset basedir="${root.dir}/src/NHibernate.Test/bin/${build.config}/net461">
267+
<fileset basedir="${root.dir}/src/NHibernate.Test/bin/${build.config}/${target.dir}">
267268
<include name="log4net*" />
268269
<include name="NHibernate.DomainModel.*" />
269270
<include name="NHibernate.Test.*" />
270271
<include name="nunit*" />
271272
</fileset>
272273
</copy>
273274
<copy todir="${bin-pack.tests}">
274-
<fileset basedir="${root.dir}/src/NHibernate.Test.VisualBasic/bin/${build.config}/net461">
275+
<fileset basedir="${root.dir}/src/NHibernate.Test.VisualBasic/bin/${build.config}/${target.dir}">
275276
<include name="NHibernate.Test.VisualBasic.*" />
276277
</fileset>
277278
</copy>
278279
<copy todir="${bin-pack.tests}">
279-
<fileset basedir="${root.dir}/src/NHibernate.TestDatabaseSetup/bin/${build.config}/net461">
280+
<fileset basedir="${root.dir}/src/NHibernate.TestDatabaseSetup/bin/${build.config}/${target.dir}">
280281
<include name="NHibernate.TestDatabaseSetup.*" />
281282
</fileset>
282283
</copy>
@@ -319,23 +320,12 @@
319320
<in>
320321
<items>
321322
<include name="${nuget.nupackages.dir}/*.nupkg"/>
322-
<exclude name="${nuget.nupackages.dir}/*.symbols.nupkg"/>
323323
</items>
324324
</in>
325325
<do>
326326
<echo message="nuget push -source https://nuget.org/ ${path::get-file-name(filename)} ${environment::newline()}" file="${nuget.nupackages.pushbatfile}" append="true"/>
327327
</do>
328328
</foreach>
329-
<foreach item="File" property="filename">
330-
<in>
331-
<items>
332-
<include name="${nuget.nupackages.dir}/*.symbols.nupkg"/>
333-
</items>
334-
</in>
335-
<do>
336-
<echo message="nuget push -source https://nuget.smbsrc.net/ ${path::get-file-name(filename)} ${environment::newline()}" file="${nuget.nupackages.pushbatfile}" append="true"/>
337-
</do>
338-
</foreach>
339329
</target>
340330

341331
<target name="nugetpush" depends="init binaries common.download-nuget nuget.set-properties"

doc/reference/modules/basic_mapping.xml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1694,6 +1694,7 @@
16941694
<area id="property15" coords="16 55" />
16951695
<area id="property16" coords="17 55" />
16961696
<area id="property17" coords="18 55" />
1697+
<area id="property18" coords="19 55" />
16971698
</areaspec>
16981699
<programlisting><![CDATA[<property
16991700
name="propertyName"
@@ -1706,6 +1707,7 @@
17061707
optimistic-lock="true|false"
17071708
generated="never|insert|always"
17081709
lazy="true|false"
1710+
lazy-group="groupName"
17091711
not-null="true|false"
17101712
unique="true|false"
17111713
unique-key="uniqueKeyName"
@@ -1773,55 +1775,63 @@
17731775
<literal>lazy</literal> (optional - defaults to <literal>false</literal>):
17741776
specifies that this property is lazy. A lazy property is not loaded when
17751777
the object is initially loaded, unless the fetch mode has been overridden
1776-
in a specific query. Values for lazy properties are loaded when any lazy
1777-
property of the object is accessed. Having lazy properties causes instances
1778-
of the entity to be loaded as proxies. Theses proxies ignore the class
1779-
<literal>proxy</literal> setting and always derives from the persistent class,
1780-
requiring its members to be overridable.
1778+
in a specific query. Values for lazy properties are loaded per lazy-group.
1779+
</para>
1780+
<para>
1781+
Having lazy properties causes instances of the entity to be loaded as proxies.
1782+
Theses proxies ignore the class <literal>proxy</literal> setting and always
1783+
derives from the persistent class, requiring its members to be overridable.
1784+
</para>
1785+
</callout>
1786+
<callout arearefs="property11">
1787+
<para>
1788+
<literal>lazy-group</literal> (optional - defaults to <literal>DEFAULT</literal>):
1789+
if the property is lazy, its lazy-loading group. When a lazy property is accessed,
1790+
the other lazy properties of the lazy group are also loaded with it.
17811791
</para>
17821792
</callout>
1783-
<callout arearefs="property11">
1793+
<callout arearefs="property12">
17841794
<para>
17851795
<literal>not-null</literal> (optional - defaults to <literal>false</literal>):
17861796
sets the column nullability for DDL generation.
17871797
</para>
17881798
</callout>
1789-
<callout arearefs="property12">
1799+
<callout arearefs="property13">
17901800
<para>
17911801
<literal>unique</literal> (optional - defaults to <literal>false</literal>):
17921802
sets the column uniqueness for DDL generation. Use <literal>unique-key</literal>
17931803
instead if the value is unique only in combination with other properties.
17941804
</para>
17951805
</callout>
1796-
<callout arearefs="property13">
1806+
<callout arearefs="property14">
17971807
<para>
17981808
<literal>unique-key</literal> (optional):
17991809
a logical name for an unique index for DDL generation. The column will be included in
18001810
the index, along with other columns sharing the same <literal>unique-key</literal>
18011811
logical name. The actual index name depends on the dialect.
18021812
</para>
18031813
</callout>
1804-
<callout arearefs="property14">
1814+
<callout arearefs="property15">
18051815
<para>
18061816
<literal>index</literal> (optional):
18071817
a logical name for an index for DDL generation. The column will be included in
18081818
the index, along with other columns sharing the same <literal>index</literal> logical
18091819
name. The actual index name depends on the dialect.
18101820
</para>
18111821
</callout>
1812-
<callout arearefs="property15">
1822+
<callout arearefs="property16">
18131823
<para>
18141824
<literal>length</literal> (optional): if the type takes a length and does not
18151825
already specify it, its length.
18161826
</para>
18171827
</callout>
1818-
<callout arearefs="property16">
1828+
<callout arearefs="property17">
18191829
<para>
18201830
<literal>precision</literal> (optional): if the type takes a precision and does not
18211831
already specify it, its precision.
18221832
</para>
18231833
</callout>
1824-
<callout arearefs="property17">
1834+
<callout arearefs="property18">
18251835
<para>
18261836
<literal>scale</literal> (optional): if the type takes a scale and does not
18271837
already specify it, its scale.
@@ -2598,6 +2608,7 @@
25982608
<area id="component6" coords="7 60"/>
25992609
<area id="component7" coords="8 60"/>
26002610
<area id="component8" coords="9 60"/>
2611+
<area id="component9" coords="10 60"/>
26012612
</areaspec>
26022613
<programlisting><![CDATA[<component
26032614
name="propertyName"
@@ -2607,6 +2618,7 @@
26072618
access="field|property|nosetter|className"
26082619
optimistic-lock="true|false"
26092620
lazy="true|false"
2621+
lazy-group="groupName"
26102622
unique="true|false">
26112623
26122624
<property ... />
@@ -2660,6 +2672,14 @@
26602672
</para>
26612673
</callout>
26622674
<callout arearefs="component8">
2675+
<para>
2676+
<literal>lazy-group</literal> (optional - defaults to <literal>DEFAULT</literal>):
2677+
If the component is lazy, its lazy-loading group. When a lazy property is accessed
2678+
on an object, included when the property is a component, the other lazy properties
2679+
of the lazy group are also loaded with it.
2680+
</para>
2681+
</callout>
2682+
<callout arearefs="component9">
26632683
<para>
26642684
<literal>unique</literal> (optional - defaults to <literal>false</literal>): Specifies
26652685
that an unique constraint exists upon all mapped columns of the component.

doc/reference/modules/nhibernate_caches.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@
783783
<title>Memcached distributed cache factory</title>
784784

785785
<para>
786-
<literal>NHibernate.Caches.CoreDistributedCache.Memcached</literal> provides a Redis distributed cache factory.
786+
<literal>NHibernate.Caches.CoreDistributedCache.Memcached</literal> provides a Memcached distributed cache factory.
787787
This factory yields a <literal>Enyim.Caching.MemcachedClient</literal> from <literal>EnyimMemcachedCore</literal>.
788788
For using it, reference the cache factory package and set the <literal>factory-class</literal> attribute of the
789789
<literal>coredistributedcache</literal> configuration section to

releasenotes.txt

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
Build 5.2.5
2+
=============================
3+
4+
Release notes - NHibernate - Version 5.2.5
5+
6+
5 issues were resolved in this release.
7+
8+
** Bug
9+
10+
* #2075 Missing cast when comparing a guid and string columns in SAP SQL Anywhere
11+
* #2046 Fix nullable Guid ToString is not translated correctly on some dialects
12+
* #2043 System.Reflection.TargetException when an interface is used as class mapping proxy definition
13+
* #2040 Incorrect SQL when comparing a guid and string column in Sql Server
14+
15+
** Task
16+
17+
* #2086 Release 5.2.5
18+
19+
Build 5.2.4
20+
=============================
21+
22+
Release notes - NHibernate - Version 5.2.4
23+
24+
3 issues were resolved in this release. The dialect change has the side effect of
25+
re-enabling a hack used by NHibernate.Spatial, allowing Spatial users to upgrade
26+
to NHibernate 5.2.x. See NHibernate.Spatial#104.
27+
28+
##### Possible Breaking Changes #####
29+
* Using DML on an entity collection was applying the changes without
30+
filtering according to the entity. It will now throw a
31+
NotSupportedException.
32+
33+
** Bug
34+
35+
* #2020 Throw for DML on filter
36+
* #2011 Use a statically resolved dialect when building the session factory
37+
38+
** Task
39+
40+
* #2030 Release 5.2.4
41+
42+
As part of releasing 5.2.4, a missing 5.2.0 possible breaking change has been added about
43+
property-ref on null values. See 5.2.0 possible breaking changes.
44+
145
Build 5.2.3
246
=============================
347

@@ -74,6 +118,9 @@ Release notes - NHibernate - Version 5.2.0
74118
IDictionary is no more supported.
75119
* Querying a dynamic entity as a Hashtable instead of an IDictionary is no more
76120
supported.
121+
* A collection mapped with a `property-ref` will no more support being accessed
122+
when the referenced property is null. It will throw. Previously, the collection
123+
was not throwing but was always loaded empty.
77124
* With PostgreSQL, a HQL query using the bitwise xor operator "^" or "bxor"
78125
was exponentiating the arguments instead. It will now correctly apply the xor
79126
operator. (# operator in PostgreSQL SQL.)
@@ -295,6 +342,24 @@ Release notes - NHibernate - Version 5.2.0
295342
As part of releasing 5.2.0, a misnamed setting in 5.0.0 release notes has been fixed:
296343
transaction.use_connection_on_system_events correct name is transaction.use_connection_on_system_prepare
297344

345+
Build 5.1.5
346+
=============================
347+
348+
Release notes - NHibernate - Version 5.1.5
349+
350+
##### Possible Breaking Changes #####
351+
* Using DML on an entity collection was applying the changes without
352+
filtering according to the entity. It will now throw a
353+
NotSupportedException.
354+
355+
** Bug
356+
357+
* #2043 System.Reflection.TargetException when an interface is used as class mapping proxy definition
358+
* #2020 Throw for DML on filter
359+
360+
** Task
361+
* #2074 Release 5.1.5
362+
298363
Build 5.1.4
299364
=============================
300365

@@ -540,6 +605,24 @@ Release notes - NHibernate - Version 5.1.0
540605
As part of releasing 5.1.0, a missing 5.0.0 possible breaking change has been added about inequality semantic in LINQ
541606
queries. See 5.0.0 possible breaking changes.
542607

608+
Build 5.0.7
609+
=============================
610+
611+
Release notes - NHibernate - Version 5.0.7
612+
613+
##### Possible Breaking Changes #####
614+
* Using DML on an entity collection was applying the changes without
615+
filtering according to the entity. It will now throw a
616+
NotSupportedException.
617+
618+
** Bug
619+
620+
* #2043 System.Reflection.TargetException when an interface is used as class mapping proxy definition
621+
* #2020 Throw for DML on filter
622+
623+
** Task
624+
* #2073 Release 5.0.7
625+
543626
Build 5.0.6
544627
=============================
545628

src/AsyncGenerator.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,9 @@ methodRules:
288288
- containingType: NHibernate.Tool.hbm2ddl.SchemaUpdate
289289
- containingType: NHibernate.Tool.hbm2ddl.SchemaValidator
290290
- containingType: NHibernate.Tool.hbm2ddl.SchemaExport
291+
- containingType: NHibernate.Linq.DmlExtensionMethods
292+
- containingType: NHibernate.Linq.InsertBuilder<TSource, TTarget>
293+
- containingType: NHibernate.Linq.UpdateBuilder<TSource>
291294
name: PubliclyExposedType
292295
- filters:
293296
- hasAttributeName: ObsoleteAttribute

0 commit comments

Comments
 (0)