2010-07-28 18 views
1

我有一個ASP.NET MVC應用程序使用Linq到Sql進行數據訪問。將值分配給Linq to Sql中的EntityRef ID字段時,EntityRef是否仍會延遲加載?

說我有兩個對象:一個Order對象,它具有CustomerID的Customer對象的外鍵。因此,在我的Order類中,您會看到兩個屬性:一個int CustomerID字段和一個Customer屬性可訪問的EntityRef成員。

當編輯或提交訂單時,我的MVC應用程序將直接更新Order類的CustomerID字段,而不是更新Customer屬性。這使我們無需獲取客戶記錄,只要提交的表單請求具有customerID條目,我就可以使用默認模型綁定代碼自動填充屬性。

這個工作正常,但是,稍後在代碼的其他部分 - 比如業務規則部分,某些邏輯將訪問Order對象的Customer屬性。例如:

if (order.Customer.HasPreviousOrders) then ... 

即使在客戶字段設置,客戶字段爲空,所以這個業務規則引發異常。

我知道Linq 2 Sql使用EntityRefs做延遲加載。我的問題是:如果ID字段已被修改,是否有辦法觸發對象的EntityRef的延遲加載?

我們有一個動態規則引擎,所以我無法控制需要使用哪些外鍵對象。我寧願不必通過我的所有控制器直接設置EntityRef <>值。

感謝您的幫助。

回答

0

好的,沒有接受者。看起來我想要做的只是不可行 - 或者不是一個好主意。

我繼續並實現了代碼,因此我設置了關聯對象屬性而不是ID屬性,因此可以處理業務規則。