後で EF Code First を使用してデータベースにマップするドメイン モデルを作成しています。これは Entity Framework を使用する初めてのプロジェクトであり、しばらく前に Entity Framework に関する本を読んだことがありますが、それがどのように機能するかの詳細をすべて思い出せません。
ドメイン モデルの一部では、1 対多の関係があります。
public class Parent
{
public IList<Child> Children { get; private set; }
}
ユーザーが のメモリ内インスタンスを変更しParent
、ボタンをクリックした後、そのインスタンスをデータベースに永続化します。その際、データベースに存在する (保存前の) インスタンスと、メモリ内にある未保存の変更済みバージョンとの間で、ドメイン固有の比較ロジックを実行する必要があります。そのため、データベースにクエリを実行して、変更されていないParent
インスタンスとその複製を取得する必要がありますChildren
。
EF Code First では、このようなクエリを安全に実行できますか? EF がそのようなクエリを実行すると、それぞれが既にメモリ内にあることがわかり、Child
重複をインスタンス化するのではなく、それらのインスタンスを再利用し、変更を上書きするのではないかと心配しています。この状況では、実際には重複が必要です。