|
From: <fab...@us...> - 2011-04-13 22:04:33
|
Revision: 5697
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5697&view=rev
Author: fabiomaulo
Date: 2011-04-13 22:04:27 +0000 (Wed, 13 Apr 2011)
Log Message:
-----------
Fixed bug when version declared on base entity
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs 2011-04-13 21:57:13 UTC (rev 5696)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs 2011-04-13 22:04:27 UTC (rev 5697)
@@ -743,7 +743,7 @@
});
}
var splitGroups = modelInspector.GetPropertiesSplits(type);
- var propertiesToMap = persistentProperties.Where(mi => !modelInspector.IsVersion(mi)).Except(naturalIdPropeties).ToList();
+ var propertiesToMap = persistentProperties.Where(mi => !modelInspector.IsVersion(mi) && !modelInspector.IsVersion(mi.GetMemberFromDeclaringType())).Except(naturalIdPropeties).ToList();
var propertiesInSplits = new HashSet<MemberInfo>();
foreach (var splitGroup in splitGroups)
{
Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs 2011-04-13 21:57:13 UTC (rev 5696)
+++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs 2011-04-13 22:04:27 UTC (rev 5697)
@@ -36,5 +36,28 @@
hbmVersion.Should().Not.Be.Null();
hbmVersion.name.Should().Be("Version");
}
+
+ [Test]
+ public void WhenVersionFromBaseEntityThenShouldntMapVersionAsProperty()
+ {
+ var mapper = new ConventionModelMapper();
+ var baseEntityType = typeof(BaseEntity);
+ mapper.IsEntity((t, declared) => baseEntityType.IsAssignableFrom(t) && baseEntityType != t && !t.IsInterface);
+ mapper.IsRootEntity((t, declared) => baseEntityType.Equals(t.BaseType));
+ mapper.Class<BaseEntity>(
+ map =>
+ {
+ map.Id(x => x.Id, idmap => { });
+ map.Version(x => x.Version, vm => { });
+ });
+ var hbmMapping = mapper.CompileMappingFor(new[] { typeof(Person) });
+
+ var hbmClass = hbmMapping.RootClasses[0];
+ var hbmVersion = hbmClass.Version;
+ hbmVersion.Should().Not.Be.Null();
+ hbmVersion.name.Should().Be("Version");
+
+ hbmClass.Properties.Should("because one is the POID and the other is the version").Be.Empty();
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|