次のリポジトリメソッドを作成しています:-
public AccountDefinition GetCustomer(int id)
{
var c = entities.AccountDefinitions.Where(p => p.ORG_ID == id)
.Include(a => a.SDOrganization)
.Include(a2 => a2.SiteDefinitions)
.Include(a3 => a3.SDOrganization.AaaPostalAddresses)
.Include(a4 =>
a4.SiteDefinitions
.Select(a5 =>
a5.DepartmentDefinitions
.Select(a6 => a6.SDUsers
.Select(a7 => a7.AaaUser.AaaContactInfoes)
)
)
)
.SingleOrDefault();
return c;
}
そして、私は上記のリポジトリメソッドを呼び出す次のアクションメソッドを持っています:-
public ActionResult Details2(int id = 0)
{
// CustomerDetails cd = repository.GetCustomer(id);
AccountDefinition cd = repository.GetCustomer2(id);
return View("copy",cd);
}
しかし、エンティティ フレームワークがどのようにデータを取得し、View-model オブジェクトを構築するかについて懸念があります。
- ユーザーが GetCustomer メソッドを呼び出す新しいオブジェクトを開始するとします。
- したがって、エンティティ フレームワークは、次のようにデータの選択を開始します。
.include
エンティティ フレームワークがデータを構築している間に、次のような新しいレコードが追加されたとします。
- を実行 した後、where が追加され
.Include(a => a.SDOrganization)
た newSDOrganization
AssPostalADDress
- そのため、同じオブジェクト内に SDOrganization が関連付けられていない AaaPostalAddress オブジェクトが存在します。
- を実行 した後、where が追加され
このケースが発生する可能性がありますか、またはEFがこれを処理しますか?