[英]NHibernate mapping error - invalid child element 'many-to-one'
将Fluent NHibernate与自动映射结合使用,我正在尝试映射以下域:
public class Company: IModel
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class Account: IModel
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Company Company { get; set; }
}
一个公司可以有多个帐户。 通常,我将直接获得一个帐户,然后偶尔要查找关联的公司,因此不需要公司模型上的帐户列表。
流利的NHibernate创建以下hbms:
公司
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" name="DataModel.Company, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Company`">
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Id" />
<generator class="identity" />
</id>
<property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Name" />
</property>
</class>
</hibernate-mapping>
帐户
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" name="DataModel.Account, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Account`">
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Id" />
<generator class="identity" />
</id>
<property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Name" />
</property>
<many-to-one class="DataModel.Company, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Company">
<column name="Company_id" />
</many-to-one>
</class>
</hibernate-mapping>
我收到以下错误:
名称空间“ urn:nhibernate-mapping-2.2”中的元素“ class”在名称空间“ urn:nhibernate-mapping-2.2”中具有无效的子元素“多对一”。 预期的可能元素列表:名称空间“ urn:nhibernate-mapping-2.2”中的“元,子选择,缓存,同步,注释,tuplizer,id,复合ID”。
我需要做什么才能使其成为有效的映射?
问题出在这些域类之外。 我在同一程序集中有一个Repository类,Fluent NHibernate显然试图将其包含在域中。 正是此类的尝试映射导致了错误(不幸的是,错误消息没有说明是哪种类型引起了问题)。
我通过在名称空间上添加where
约束来修复它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.