Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate 重复的类/实体映射错误_Nhibernate - Fatal编程技术网

Nhibernate 重复的类/实体映射错误

Nhibernate 重复的类/实体映射错误,nhibernate,Nhibernate,我有以下域层次结构: 用户->实体WithAuditDate->实体 以下是域:(简化) 以及映射(简化): 当我跑步时,我得到了 此错误: Tests.AltNetTime.Data.NHibernateMaps.MappingIntegrationTests.CanConfirmData-baseMatchesMappings: FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在

我有以下域层次结构:

用户->实体WithAuditDate->实体

以下是域:(简化)

以及映射(简化):


当我跑步时,我得到了 此错误:

Tests.AltNetTime.Data.NHibernateMaps.MappingIntegrationTests.CanConfirmData-baseMatchesMappings: FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在原因收集,以及 有关详细信息,请参阅InnerException

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

    ----> FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在原因收集,以及 有关详细信息,请参阅InnerException

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

    ---->NHibernate.MappingException: 无法编译映射 文档:(XmlDocument)---> NHibernate.DuplicateMappingException: 重复的类/实体映射 AltNetTime.Core.User拆卸: System.Reflection.TargetInputException异常 :异常已由 调用的目标。--> System.Collections.Generic.KeyNotFoundException :中不存在给定的密钥 字典

如果用户类从实体继承,则单元测试通过。 此外,我还必须从映射文件中删除CreatedAt属性。 显然,AuditDate的实体有问题 班级。我不确定是什么导致了重复的类/实体映射。 有什么想法吗


谢谢

您需要在项目中更改IsBaseType约定。您可以找到的其他信息


希望能有所帮助。

您需要在项目中更改IsBaseType约定。您可以找到的其他信息


希望能有所帮助。

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


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

如果复制并粘贴*.hbm文件而忘记更改属性,则通常会触发重复类/实体映射


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

您确定即使使用此“简化”代码也会遇到此问题吗?也许你优化了这个问题……我还能错过什么?我省略了一些属性,使问题变得简短。但关键部分在那里。谢谢。我的意思是,你会遇到FluentNHibernate异常,但代码中没有关于FNH的任何内容。我只是问你是否可以用简化的代码重现这个问题,或者这只是一个猜测。如果你不能解释一个问题,你永远不应该猜到什么是关键。斯特凡,请看我对anwser#1的第二个回复。我想我已经找出了问题的原因。感谢您回答我的问题。您确定即使使用此“简化”代码也会遇到此问题吗?也许你优化了这个问题……我还能错过什么?我省略了一些属性,使问题变得简短。但关键部分在那里。谢谢。我的意思是,你会遇到FluentNHibernate异常,但代码中没有关于FNH的任何内容。我只是问你是否可以用简化的代码重现这个问题,或者这只是一个猜测。如果你不能解释一个问题,你永远不应该猜到什么是关键。斯特凡,请看我对anwser#1的第二个回复。我想我已经找出了问题的原因。谢谢你回答我的问题。谢谢你提供更多的信息。我以前见过。我如何在hbm上做到这一点?我这里不使用Fluent NHibernate。谢谢您的指导。我一直在使用夏普架构。默认情况下,它使用Fluent NHibernate。但我最近在自动映射中遇到了一个错误。因此,我转向hbm来解决这个问题。从那时起,我就习惯了hbm文件,以至于忘记了Fluent NHibernate中的约定。你是对的。我错过了IsBaseType会议。谢谢提供更多信息。我以前见过。我如何在hbm上做到这一点?我这里不使用Fluent NHibernate。谢谢您的指导。我一直在使用夏普架构。默认情况下,它使用Fluent NHibernate。但我最近在自动映射中遇到了一个错误。因此,我转向hbm来解决这个问题。从那时起,我就习惯了hbm文件,以至于忘记了Fluent NHibernate中的约定。你是对的。我错过了IsBaseType会议。
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>