1

別のクラスから継承している外部キーの値を更新する際に問題があります。私はEntity Frameworkで切り離されたオブジェクトを扱っているので、graphdiffを使用して処理しています。

読みやすくするためにコードを単純化しました

プロジェクト クラス:

public class Project
{
    public Guid Id { get; set; }

    public virtual List<Activity> Activities { get; set; }
}

活動クラス:

public class Activity
{
    public Guid Id { get; set; }

    public String Name { get; set; }

    public virtual Company Company { get; set; }
}

SurfingActivity クラス:

public class SurfingActivity : Activity
{
    public String Comment { get; set; }

    public virtual Weather Weather { get; set; }
}

graphdiff を使用した更新コンテキスト:

public void UpdateActivity(Project project)
{
    this.UpdateGraph(project, map => map
        .OwnedCollection(p => p.Activities, with => with
            .AssociatedEntity(a => a.Company)
        )
    );
}

Company のプロパティを Activity に関連付けることしかできませんが、Weather of SurfingActivity を関連付けることはできません。SurfingActivity の値を渡すと、Id、Name、Company、および Comment が Activity テーブルと SurfingActivity テーブルに保存されますが、天気は保存されません。プロジェクトで、surfActivity のリストを含む新しいプロパティを作成することなく、これを解決する方法を提案する人はいますか?

4

1 に答える 1