NHibernate保存对象

时间:2012-11-03 17:25:59

标签: nhibernate c#-4.0 fluent-nhibernate

我有一个链接到详细信息对象(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);
        }

1 个答案:

答案 0 :(得分:0)

NHibernate引用(http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone)中一对一的部分似乎暗示(最后)Detail.ProfileId应该是真的,例如OwningProfile(键入为Profile)并使用References()来映射(在流畅的NH中)。