我有一个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 <>值。
感谢您的帮助。