別のクラスから継承している外部キーの値を更新する際に問題があります。私は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 のリストを含む新しいプロパティを作成することなく、これを解決する方法を提案する人はいますか?