Skip to content

Commit 256ddd0

Browse files
committed
Merge branch '3.3.x'
2 parents 612d1b6 + 3f3a095 commit 256ddd0

File tree

12 files changed

+205
-33
lines changed

12 files changed

+205
-33
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
3+
Namespace Issues.NH2963
4+
Public Class Entity
5+
Private _childs As IList(Of String)
6+
7+
Public Property Childs As IList(Of String)
8+
Get
9+
Return _childs
10+
End Get
11+
Set
12+
_childs = value
13+
End Set
14+
End Property
15+
End Class
16+
End Namespace
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Imports NHibernate.Mapping.ByCode
2+
Imports NUnit.Framework
3+
4+
Namespace Issues.NH2963
5+
<TestFixture()> _
6+
Public Class Fixture
7+
<Test> _
8+
Public Sub GenericDecodeMemberAccessExpressionForCollectionAsEnumerableShouldReturnMemberOfDeclaringClass()
9+
TypeExtensions.DecodeMemberAccessExpression (Of Entity, IEnumerable(Of String))(Function(mc) mc.Childs)
10+
End Sub
11+
12+
<Test> _
13+
Public Sub GenericDecodeMemberAccessExpressionOfForCollectionAsEnumerableShouldReturnMemberOfDeclaringClass()
14+
TypeExtensions.DecodeMemberAccessExpressionOf (Of Entity, IEnumerable(Of String))(Function(mc) mc.Childs)
15+
End Sub
16+
End Class
17+
End Namespace

src/NHibernate.Test.VisualBasic/NHibernate.Test.VisualBasic.vbproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
<Compile Include="Issues\NH2966\Fixture.vb" />
7676
<Compile Include="Issues\NH3302\Entity.vb" />
7777
<Compile Include="Issues\NH3302\Fixture.vb" />
78+
<Compile Include="Issues\NH2963\Entity.vb" />
79+
<Compile Include="Issues\NH2963\Fixture.vb" />
7880
<Compile Include="Issues\NH0000\Entity.vb" />
7981
<Compile Include="Issues\NH0000\Fixture.vb" />
8082
<Compile Include="Issues\IssueTestCase.vb" />
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using NHibernate.Criterion;
5+
using NHibernate.Linq;
6+
using NHibernate.Linq.Functions;
7+
using NUnit.Framework;
8+
9+
namespace NHibernate.Test.NHSpecificTest.NH3505
10+
{
11+
[TestFixture]
12+
public class Fixture : BugTestCase
13+
{
14+
protected override void OnTearDown()
15+
{
16+
using (ISession s = sessions.OpenSession())
17+
{
18+
s.Delete("from Student");
19+
s.Delete("from Teacher");
20+
s.Flush();
21+
}
22+
}
23+
24+
[Test]
25+
public void StatelessSessionLazyUpdate()
26+
{
27+
var s = OpenSession();
28+
Guid studentId;
29+
Guid teacherId;
30+
try
31+
{
32+
var teacher = new Teacher {Name = "Wise Man"};
33+
s.Save(teacher);
34+
teacherId = teacher.Id;
35+
var student = new Student {Name = "Rebelious Teenager", Teacher = teacher};
36+
s.Save(student);
37+
studentId = student.Id;
38+
s.Flush();
39+
}
40+
finally
41+
{
42+
s.Close();
43+
}
44+
45+
var ss = Sfi.OpenStatelessSession();
46+
try
47+
{
48+
var trans = ss.BeginTransaction();
49+
try
50+
{
51+
var student = ss.Get<Student>(studentId);
52+
Assert.AreEqual(teacherId, student.Teacher.Id);
53+
Assert.AreEqual("Rebelious Teenager", student.Name);
54+
student.Name = "Young Protege";
55+
ss.Update(student);
56+
trans.Commit();
57+
}
58+
catch
59+
{
60+
trans.Rollback();
61+
throw;
62+
}
63+
}
64+
finally
65+
{
66+
ss.Close();
67+
}
68+
69+
s = OpenSession();
70+
try
71+
{
72+
var student = s.Get<Student>(studentId);
73+
Assert.AreEqual(teacherId, student.Teacher.Id);
74+
Assert.AreEqual("Young Protege", student.Name);
75+
}
76+
finally
77+
{
78+
s.Close();
79+
}
80+
}
81+
}
82+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH3505">
3+
<class name="Teacher" optimistic-lock="version">
4+
<id name="Id">
5+
<generator class="guid.comb" />
6+
</id>
7+
<version name="Version"/>
8+
<property name="Name"/>
9+
</class>
10+
<class name="Student">
11+
<id name="Id">
12+
<generator class="guid.comb" />
13+
</id>
14+
<property name="Name"/>
15+
<many-to-one name="Teacher"/>
16+
</class>
17+
</hibernate-mapping>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using System.Collections;
3+
4+
namespace NHibernate.Test.NHSpecificTest.NH3505
5+
{
6+
public class Student
7+
{
8+
public virtual Guid Id { get; set; }
9+
public virtual string Name { get; set; }
10+
public virtual Teacher Teacher { get; set; }
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using System.Collections;
3+
4+
namespace NHibernate.Test.NHSpecificTest.NH3505
5+
{
6+
public class Teacher
7+
{
8+
public virtual Guid Id { get; set; }
9+
public virtual int Version { get; set; }
10+
public virtual string Name { get; set; }
11+
}
12+
}

src/NHibernate.Test/NHSpecificTest/NH392/Fixture.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ public void UnsavedMinusOneNoNullReferenceException()
3333
tran.Rollback();
3434
}
3535
}
36-
}
36+
}
37+
38+
protected override void OnTearDown()
39+
{
40+
using (ISession s = sessions.OpenSession())
41+
{
42+
s.Delete("from UnsavedValueMinusOne");
43+
s.Flush();
44+
}
45+
}
3746
}
3847
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,6 +682,9 @@
682682
<Compile Include="NHSpecificTest\NH3058\SampleTest.cs" />
683683
<Compile Include="NHSpecificTest\NH1818\DomainClass.cs" />
684684
<Compile Include="NHSpecificTest\NH1818\Fixture1818.cs" />
685+
<Compile Include="NHSpecificTest\NH3505\Student.cs" />
686+
<Compile Include="NHSpecificTest\NH3505\Teacher.cs" />
687+
<Compile Include="NHSpecificTest\NH3505\Fixture.cs" />
685688
<Compile Include="NHSpecificTest\NH2923\Models.cs" />
686689
<Compile Include="NHSpecificTest\NH2923\ExtraLazyFixture.cs" />
687690
<Compile Include="NHSpecificTest\NH3405\Fixture.cs" />
@@ -2968,6 +2971,7 @@
29682971
<EmbeddedResource Include="NHSpecificTest\NH3058\Mappings.hbm.xml" />
29692972
<EmbeddedResource Include="NHSpecificTest\NH2985\Mappings.hbm.xml" />
29702973
<EmbeddedResource Include="NHSpecificTest\NH1818\Mappings.hbm.xml" />
2974+
<EmbeddedResource Include="NHSpecificTest\NH3505\Mappings.hbm.xml" />
29712975
<EmbeddedResource Include="NHSpecificTest\NH3428\Mappings.hbm.xml" />
29722976
<EmbeddedResource Include="NHSpecificTest\NH3408\Mappings.hbm.xml" />
29732977
<EmbeddedResource Include="NHSpecificTest\NH2408\Mappings.hbm.xml" />

src/NHibernate/Dialect/MsSql2012Dialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ protected override string GetCreateSequenceString(string sequenceName, int initi
3030

3131
public override string GetDropSequenceString(string sequenceName)
3232
{
33-
return "drop sequence " + sequenceName;
33+
string dropSequence = "IF EXISTS (select * from sys.sequences where name = N'{0}') DROP SEQUENCE {0}";
34+
35+
return string.Format(dropSequence, sequenceName);
3436
}
3537

3638
public override string GetSequenceNextValString(string sequenceName)

0 commit comments

Comments
 (0)