我使用EF5,POCO數據庫第一種方法。比方說,我需要創建一個新的客戶和新的訂單: -實體框架5 POCO - 創建和管理關係
var customer = new Customer();
var order = new Order();
order.Customer = customer;
order.CustomerId = customer.Id;
customer.Orders.Add(order);
難道我真的要包括那些最後三行建立的關係?這裏要指出的是,我正在內存中創建實體層次結構,並在很長時間內操縱它,直到用戶點擊「保存」。
什麼讓我感到困惑的是創建幾個新的客戶對象的想法。每一個都會以ID 0結束(在被持續之前)。我的代碼中有各種地方,我使用Order的CustomerId屬性進行操作。如果有幾個新客戶(ID 0),那麼我如何才能找到合適的客戶?或者我應該總是使用Order.Customer
而不是Order.CustomerId
(在這種情況下,在上面的代碼中擺脫ID分配是否安全)?
在你的例子中,我能否在顧客傳遞到上下文之前遍歷Order.Customer *?請記住,我將在它們持久保存到數據庫之前操作/遍歷這些實體層次結構。我不認爲POCO實體有任何建立「雙向」關係的內置邏輯,即僅僅執行'customer.Orders.Add(order)'不會填充訂單實體的'.Customer'和'。 CustomerId'屬性,是嗎? – 2013-03-05 11:45:51
@AndrewStephens查看更新的答案。我已經逐步描述了發生的事情。 – 2013-03-05 12:08:27