C# NHibernate映射错误-无效的子元素';多对一';

C# NHibernate映射错误-无效的子元素';多对一';,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,使用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

使用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; }
}
一家公司可以有多个账户。一般来说,我会直接获得一个帐户,然后偶尔会想找到关联的公司,因此在公司模型上不需要帐户列表

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>

我得到了以下错误:

命名空间中的元素“class” “urn:nhibernate-mapping-2.2”已 中的子元素“多对一”无效 名称空间 “urn:nhibernate-mapping-2.2”。名单 预期的可能因素:, 子选择、缓存、同步、, 注释,元组化程序,id,复合id' 在命名空间中 “urn:nhibernate-mapping-2.2”


我需要做什么才能使这成为一个有效的映射?

问题不在于这些域类。我在同一个程序集中有一个Repository类,Fluent NHibernate显然试图将其包含在域中。导致错误的是试图映射该类(不幸的是,错误消息没有说明是哪种类型导致了问题)

我通过在名称空间上添加
where
约束来修复它