有人可以帮助我以最好的方式映射流利的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