時立即將性能我有一些代碼,看起來有點像這樣:實體框架應插入
var query = from row in context.Orders.Include("Customer")
where row.Id = 5
select row;
var result = query.FirstOrDefault();
if(result == null)
{
result = new Order {CustomerId=5,...}
context.Orders.Add(result);
context.SaveChanges();
// at this point result.Customer is null
// and is not lazy-loaded by EF on access
}
return result;
正如你可以看到上面的代碼,然後如果插入發生,那麼結果的顧客財產不包括在內,稍後在我的代碼中給我一個錯誤。
當插入result
時,如何確保從數據庫加載result.Customer
?我可以這樣做而不用手動選擇它嗎?
「正如你可以看到上面的代碼...結果的客戶屬性不包括」我們怎麼看?代碼的確切問題是什麼?你在代碼中看到什麼錯誤消息?目前很難理解你所要求的。 – BlueM
@Iain Galloway感謝您的編輯。 – BlueM
您的查詢看起來很奇怪,因爲您正在檢索ID爲5的'Order',如果您沒有找到它,那麼您將爲ID = 5的'Customer'創建一個新訂單。您確定查詢不應該是'客戶包括(「訂單」)cust.ID = 5選擇客戶? – Colin