Nhibernate 重复的类/实体映射错误
我有以下域层次结构: 用户->实体WithAuditDate->实体 以下是域:(简化) 以及映射(简化):Nhibernate 重复的类/实体映射错误,nhibernate,Nhibernate,我有以下域层次结构: 用户->实体WithAuditDate->实体 以下是域:(简化) 以及映射(简化): 当我跑步时,我得到了 此错误: Tests.AltNetTime.Data.NHibernateMaps.MappingIntegrationTests.CanConfirmData-baseMatchesMappings: FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在
当我跑步时,我得到了
此错误:
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 :中不存在给定的密钥 字典
谢谢 您需要在项目中更改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>