1

次のオブジェクトを別のセッションにマージする際に問題があります:

エンティティとその関連付け

ドメイン -> * サブドメイン -> * コントロール -> * メジャー

ドメイン エンティティのマージは機能しますが、関連付けはマージされません。どうすればこれを修正できますか?

using (var session = SessionFactoryContainer.Current.Get(sessionFactoryName).OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    try
                    {
                        session.Merge(domain);
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }

マッピング

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using ISMSControl.Domain;

namespace ISMSControl.Infrastructure.Mappings
{
    public class NDomainMapping : ClassMap<NDomain>
    {
        public NDomainMapping()
        {
            Table("domeinen");
            Id(m => m.Id, "id").UnsavedValue(-1);
            Map(m => m.Code, "code_1");
            Map(m => m.Description, "omschrijving");
            Map(m => m.Explanation, "toelichting");
            Map(m => m.DateCreated, "createdat");
            Map(m => m.CreatedBy, "createdby");
            Map(m => m.DateModified, "modifiedat");
            Map(m => m.ModifiedBy, "modifiedby");

            HasMany(m => m.SubDomains)
                .KeyColumn("domein")
                .Inverse()
                .Cascade.All();
        }
    }
}
4

1 に答える 1

0

独自のデータ コンテキストを作成し、プロパティを関連する列にマップしました。私の ModelTranslator クラスは、ドメイン オブジェクトを、独自のデータ コンテキストの実装に必要な型オブジェクトに変換します。

これが正しい解決策かどうかはまだわかりませんが、今のところ問題は解決しました。

于 2012-09-27T06:29:38.653 に答える