有人可以幫助我以最好的方式映射流利的nHibernate中的以下情況嗎?地址類用於客戶端和公司。如何在SQL中最有效地存儲它?映射應該是什麼樣子?我也想過多種選擇,但我沒有足夠的經驗與NHibernate針對這些情況:實體nHibernate映射到多個不同的父實體(例如地址 - >公司,地址 - >客戶端)
使用1個地址實體和1臺和使用分母列客戶端和地址,公司地址來區分 - >如何在nHibernate中實現這個?
使用1個地址實體和2個表(ClientAddresses和CompanyAddresses) - >但我只可以在類地址
使用2個地址實體和2代表的映射定義1個表 - >不如此優雅
當我開始實施公司類,並意識到它也需要多個地址時,我就偶然發現了這個問題。到目前爲止,我有一個地址和客戶端類,它們之間有一對多的映射關係。在數據庫中,地址有一個名爲ClientId的額外列。但隨着介紹公司類我卡...
任何幫助將不勝感激。
我目前在sharparch 1.5框架,它使用自動映射和我的映射文件的工作是這樣的:
public class AddressMap : IAutoMappingOverride<Address>
{
public void Override(AutoMapping<Address> mapping)
{
mapping.Table("addresses");
mapping.Id(x => x.Id, "AddressGuid")
.UnsavedValue(Guid.Empty)
.GeneratedBy.GuidComb();
mapping.References(x => x.Client, "ClientGuid");
}
}
下面一些代碼的說明這個問題:
地址
public class Address
{
public virtual string StreetLine1 { get; set; }
public virtual string StreetLine2 { get; set; }
public virtual string PostalCode { get; set; }
public virtual string City { get; set; }
public virtual string Country { get; set; }
}
其中有下表:
表名=地址
欄= AddressGuid,StreetLine1,StreetLine2,POSTALCODE,城市,國家
客戶
public class Client
{
public IList<Address> Addresses {get;set;}
}
公司
public class Company
{
public IList<Address> Addresses {get;set;}
}
可悲的是我有相同的問題。讓我們看看我們能否得到一些指導。 – mhenrixon 2010-10-18 20:40:42