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. |