NHibernate模型映射

时间:2011-06-29 20:03:05

标签: c# nhibernate

我有这个数据库模式(MS SQL 2008):

Shops
   ID int (PK)
   Name nvarchar(200)

Suppliers
   ID int (PK)
   ShopID int (FK->Shops.ID)
   Name nvarchar(200)

Contacts
   ID int (PK)
   SupplierID int (FK->Suppliers.ID)
   Phone nvarchar(100)

我的项目中有这些模型:

public class Shop
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IList<SupplierContact> SupplierContacts { get; set; }
}

public class SupplierContact
{
    public int Id { get; set; }
    public string Phone { get; set; }
}

我使用映射文件来加载我的Shop模型,但没有运气。主要的是我不需要Supplier模型,我不知道应该如何实现映射以将所有供应商电话加载为Shop模型的子列表。

有关如何创建映射的任何帮助都表示赞赏。

提前致谢。

P.S。 <{1}}和Shop模型不会被更改或删除。

1 个答案:

答案 0 :(得分:0)

<class name="SupplierContact" table="SupplierContact">
   <id name="id" column="id">
      <generator class="native" />
   </id>
   ... other properties etc ...
   <many-to-one name="Shop" column="ShopId" class="Shop" />
</class>

<class name="Shop" table="Shop">
   <id name="Id" column="Id">
      <generator class="native" />
   </id>
   ... properties etc ...
   <set name="SupplierContacts" table="SupplierContact">
      <key column="ShopId" />
      <one-to-many class="SupplierContact" />
   </set>
</class>

编辑:修正错字。