1
我創建了以下存儲庫方法: -使用實體框架的多個表中選擇的數據,它可能會導致不一致的結果
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);
}
但我有一個關於如何實體框架將獲得數據和構造視圖模型對象。
- 咱們說一個用戶發起一個新的對象調用GETCUSTOMER方法
- 所以,實體框架將開始選擇數據,按照
.include
讓說,雖然實體框架構建的數據的新記錄剛剛加入,如: -
- 執行
.Include(a => a.SDOrganization)
,新SDOrganization
與AssPostalADDress
這裏只是增加 後
- 所以會有一個AaaPostalAddress對象在同一對象內沒有關聯的SDOrganization。
- 執行
所以可能這種情況發生,或者EF會處理這個問題?