2010-07-28 59 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属性,因此可以处理业务规则。