重复的类/实体映射错误

时间:2009-09-29 14:16:59

标签: nhibernate

我有这个域层次结构:

用户 - > EntityWithAuditDate - >实体

这是域名:(简化)

public class User : EntityWithAuditDate 
{ 

      public User(){} 

      public virtual string Name { get; set; } 

} 


public abstract class EntityWithAuditDate : Entity 
{ 

       public EntityWithAuditDate() { } 


       public virtual DateTime? CreatedAt { get; set; } 
} 

映射(简化):

    <class name="User" table="Users" abstract="false"> 
            <id name="Id" type="Int32" column="UserId"> 
                    <generator class="identity" /> 
            </id> 
            <property name="Name" type="String"/> 
            <property name ="CreatedAt"/> 
    </class> 

当我跑mapping integration unit test时,我得到了 这个错误:

  

Tests.AltNetTime.Data.NHibernateMaps.MappingIntegrationTests.CanConfirmDatabaseMatchesMappings:   FluentNHibernate.Cfg.FluentConfigurationException   :无效或不完整   创建时使用配置   一个SessionFactory。校验   PotentialReasons集合,和   InnerException以获取更多详细信息。

     
      
  • 未配置数据库   通过数据库方法。

         

    ----&GT;   FluentNHibernate.Cfg.FluentConfigurationException   :无效或不完整   创建时使用配置   一个SessionFactory。校验   PotentialReasons集合,和   InnerException以获取更多详细信息。

  •   
  • 未配置数据库   通过数据库方法。

         

    ----&GT; NHibernate.MappingException:   无法编译映射   document:(XmlDocument)----&gt;   NHibernate.DuplicateMappingException:   重复的类/实体映射   AltNetTime.Core.User TearDown:   System.Reflection.TargetInvocationException   :例外已被抛出   调用的目标。 ----&GT;   System.Collections.Generic.KeyNotFoundException   :给定的密钥不存在于   字典。

  •   

如果User类继承自Entity,则传递单元测试。 此外,我不得不从映射文件中删除CreatedAt属性。 显然,EntityWithAuditDate出了问题 类。我不确定是什么导致重复的类/实体映射。 有任何想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您需要在项目中更改Is BaseType约定。您可以找到here

的其他信息

希望它会有所帮助。

答案 1 :(得分:0)

如果您复制并粘贴* .hbm文件并忘记更改

,则通常会触发重复的类/实体映射

因此,在两个* .hbm文件中,name属性中的值相同。