【发布时间】:2009-12-08 16:04:13
【问题描述】:
使用 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; }
}
一个公司可以有多个帐户。一般我会直接得到一个账号,然后偶尔想找一下关联的Company,所以不需要company模型上的账号列表。
Fluent 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' 有 无效的子元素“多对一” 命名空间 'urn:nhibernate-mapping-2.2'。清单 预期的可能元素:'元, 子选择,缓存,同步, 评论,tuplizer,id,composite-id' 在命名空间中 'urn:nhibernate-mapping-2.2'.
我需要做些什么才能使它成为有效的映射?
【问题讨论】:
标签: c# nhibernate fluent-nhibernate