1
我有一种情况,我已经在我的域模型中定义了一个实体,我想在其中公开一个id列。流利的NHibernate映射单列到复合键
public class OfferedProduct
{
public virtual string Id {get; set;}
//other properties
}
遗留数据库表,这将映射到是
CREATE TABLE ProductGrouping
MemberNumber INT NOT NULL,
GroupId CHAR NOT NULL,
...
我不想通过引入两个属性,并使用“CompositeId”构建映射他们妥协的域模型。
CompositeId().KeyProperty(x => x.MemberNumber).KeyProperty(x => x.GroupId)
我想最好是连接两个值的形式{MemberNumber} {}的GroupId和揭露这个作为id值。然后,我会使用自定义类型来处理从数据库中检索时这些值的连接方式,并在保存/选择时分解。
我注意到“CompositeId”方法不允许customType与标准的“Id”调用一样;但“Id”方法不提供设置多个列的功能。我看过一些例子,其中人们使用“地图”来使用自定义类型组合两列,但不使用ID值。
我注意到“CompositeId”有一个重载,可以采取自定义的身份类,但我不确定如何在这种情况下使用它。
CompositeId<OfferedProductIdentifier>(x => x.?)
任何帮助将不胜感激。