Skip to content

Commit 03215e8

Browse files
committed
Fix NH-1584 by Seth Schubert
SVN: trunk@4006
1 parent 3be2dc1 commit 03215e8

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

src/NHibernate.Test/NHSpecificTest/NH1584/TestFixture.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,9 @@
66

77
namespace NHibernate.Test.NHSpecificTest.NH1584
88
{
9-
[TestFixture, Ignore("Not supported yet.")]
9+
[TestFixture]
1010
public class TestFixture : BugTestCase
1111
{
12-
public override string BugNumber
13-
{
14-
get { return "NH1584"; }
15-
}
16-
1712
protected override void OnTearDown()
1813
{
1914
using (ISession session = OpenSession())

src/NHibernate/Engine/AssociationKey.cs

+16-6
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,35 @@ internal sealed class AssociationKey
1212
{
1313
private readonly EntityKey ownerKey;
1414
private readonly string propertyName;
15+
private readonly int hashCode;
1516

1617
public AssociationKey(EntityKey ownerKey, string propertyName)
1718
{
1819
this.ownerKey = ownerKey;
1920
this.propertyName = propertyName;
21+
hashCode = ownerKey.GetHashCode() ^ propertyName.GetHashCode() ^ ownerKey.EntityName.GetHashCode();
2022
}
2123

2224
public override bool Equals(object that)
2325
{
24-
if(this==that) return true;
26+
// NH : Different behavior for NH-1584
27+
if (this == that)
28+
{
29+
return true;
30+
}
2531

26-
AssociationKey key = that as AssociationKey;
27-
if(key==null) return false;
28-
return key.propertyName.Equals(propertyName) && key.ownerKey.Equals(ownerKey);
32+
var key = that as AssociationKey;
33+
if (key == null)
34+
{
35+
return false;
36+
}
37+
return key.propertyName.Equals(propertyName) && key.ownerKey.Equals(ownerKey)
38+
&& key.ownerKey.EntityName.Equals(ownerKey.EntityName);
2939
}
3040

3141
public override int GetHashCode()
3242
{
33-
return ownerKey.GetHashCode() ^ propertyName.GetHashCode();
43+
return hashCode;
3444
}
3545
}
36-
}
46+
}

0 commit comments

Comments
 (0)