我正在创建以下存储库方法:-
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;
}
我有以下 Action 方法,它将调用上述存储库方法:-
public ActionResult Details2(int id = 0)
{
// CustomerDetails cd = repository.GetCustomer(id);
AccountDefinition cd = repository.GetCustomer2(id);
return View("copy",cd);
}
但我担心实体框架将如何获取数据并构造视图模型对象。
- 假设用户启动了一个调用 GetCustomer 方法的新对象
- 因此实体框架将开始根据
.include
假设在实体框架正在构建数据时,刚刚添加了一条新记录,例如:-
- 执行后
.Include(a => a.SDOrganization)
,一个新SDOrganization
的带有AssPostalADDress
刚刚添加的位置 - 所以会有一个 AaaPostalAddress 对象在同一个对象内没有关联的 SDOrganization。
- 执行后
那么这种情况可能会发生还是 EF 会处理呢?