【发布时间】:2013-07-12 08:55:55
【问题描述】:
我正在创建以下存储库方法:-
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 会处理?
【问题讨论】:
标签: asp.net-mvc entity-framework-4.1