1

我有一个链接到详细信息对象(1 到 1)的配置文件对象。因此,在我的个人资料对象上,我将详细信息对象作为属性,并且我正在尝试使用 HasOne 映射来映射详细信息对象。保存配置文件时,它正在数据库中创建一个配置文件条目和一个详细信息条目;但是,详细信息对象上的 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);
        }
4

1 回答 1

0

NHibernate 参考( http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone )中关于一对一的部分似乎建议(接近尾声) Detail.ProfileId 应该真的是例如OwningProfile(键入为Profile)并使用References()映射(在流利的NH中)。

于 2012-11-03T23:40:13.080 回答