我有一个链接到详细信息对象(1到1)的配置文件对象。因此,在我的配置文件对象上,我将详细对象作为属性,并且我尝试使用HasOne映射来映射详细信息对象。保存配置文件时,它将在db和详细信息条目中创建配置文件条目;但是,详细信息对象上的profileId是Guid.Empty。它不使用在配置文件中生成的Id来保存详细信息:
任何想法?提前致谢
以下是我的地图:
public ProfileMap() : base(ESchema.Usr, ETable.Profile)
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.MembershipId);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Gender).CustomType<EGender>();
Map(x => x.BirthDate);
Map(x => x.IsActive);
HasOne(x => x.Details).PropertyRef(x => x.ProfileId).Cascade.All();
//References(x => x.ProfileImage).Column("ProfileId");
}
public DetailMap() : base(ESchema.Usr, ETable.Detail)
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.ProfileId);
Map(x => x.Height);
Map(x => x.Weight);
}
答案 0 :(得分:0)
NHibernate引用(http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone)中一对一的部分似乎暗示(最后)Detail.ProfileId应该是真的,例如OwningProfile(键入为Profile)并使用References()来映射(在流畅的NH中)。