EntityFramwork (Code First) で 1-n 関係をモデル化するための通常のアプローチは、次のような仮想コレクション プロパティを使用することです。
class Project {
public virtual ICollection<Remark> Remarks { get; set; }
}
class Remark {
public virtual int ProjectId { get; set; }
public virtual Project Project {get; set; }
}
Remarks
コレクションは初期なのでnull
、次のアプローチを取ります
private ICollection<Remark> _remarks;
public virtual ICollection<Remark> {
get {
if (_remarks == null)
_remarks = new List<Remark>();
return _remark;
}
set {
_remarks = value;
}
}
プロパティを明示的に設定する必要なく、Remarks.Add
新しく作成されたオブジェクトでメソッドを使用するため。Project
Afaik EF は私のクラスから内部的に派生し、遅延読み込みをサポートするために仮想ナビゲーション プロパティを上書きします。
私の質問:コレクション プロパティのセッターを定義する必要がありますか? EFはそれを必要としますか? ゲッターのみを公開し、クラスが内部でコレクションを管理できるようにしたいと考えています。
編集偶然にも、この関連する質問に気付いたのは、私の投稿の直後だけだったので、重複しているだけかもしれません...