【问题标题】:When assigning values to EntityRef ID fields in Linq to Sql, can EntityRef still delay load?Linq to Sql中EntityRef ID字段赋值时,EntityRef还能延迟加载吗?
【发布时间】:2011-03-22 09:24:53
【问题描述】:

我有一个使用 Linq to Sql 进行数据访问的 ASP.NET MVC 应用程序。

假设我有两个对象:一个 Order 对象,它有一个 CustomerID 指向的 Customer 对象的外键。因此,在我的 Order 类中,您会看到两个属性:一个 int CustomerID 字段和一个可由 Customer 属性访问的 EntityRef 成员。

当编辑或提交订单时,我的 MVC 应用程序将直接更新 Order 类的 CustomerID 字段,而不是更新 Customer 属性。这使我们不必获取客户记录,并且只要提交的表单请求具有 customerID 条目,我就可以使用默认模型绑定代码自动填充属性。

这可以正常工作,但是,稍后在代码的其他部分——比如业务规则部分,一些逻辑将访问 Order 对象的 Customer 属性。例如:

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

即使设置了 CustomerID 字段,但 Customer 字段为空,因此该业务规则会引发异常。

我知道 Linq 2 Sql 使用 EntityRefs 来延迟加载。我的问题是:如果 ID 字段已被修改,是否有办法触发对象的 EntityRef 延迟加载?

我们有一个动态规则引擎,所以我无法控制需要哪些外键对象。我宁愿不必通过我所有的控制器来直接设置 EntityRef 值。

感谢您的帮助。

【问题讨论】:

    标签: asp.net linq-to-sql


    【解决方案1】:

    好的,没有接受者。看起来我正在尝试做的事情是不可行的——或者可能不是一个好主意。

    我继续并实现了代码,因此我设置了关联对象属性而不是 ID 属性,以便可以处理业务规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多