1

詳細オブジェクト(1対1)にリンクするプロファイルオブジェクトがあります。したがって、プロファイルオブジェクトには、プロパティとして詳細オブジェクトがあり、HasOneマッピングを使用して詳細オブジェクトをマップしようとしています。プロファイルが保存されると、データベースにプロファイルエントリと詳細エントリが作成されます。ただし、detailsオブジェクトの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 ) の 1 対 1 のセクションは、(最後に向かって) Detail.ProfileId がすべきであることを示唆しているようです。実際には、たとえば、OwningProfile (Profile として入力) および References() を使用して (流暢な NH で) マップされます。

于 2012-11-03T23:40:13.080 に答える