1

我正在为一个项目开发 EF。最近,感谢 Slauma 和 Mark Oreta,我解决了我无法达到对象关系和报错The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.的问题。详细的帖子在这里

我有一个非常相似的问题,无法通过 INCLUDE 解决。我想达到关系与 PRODUCT 实体的关系。我不知道这是否可能,但是当我调试和 INSIDE 时我可以达到它using (var Context = base.Entities)。但是在这个街区之外呢?这是代码。

using (var Context = base.Entities)
{
                return Context.Product
                                    .Include("Product_Attribute")
                                    .Include("Product_AttributeType")
                                    .Include("Product_AttributeType_Title")
                                    .Include("Product_AttributeValueUnit")
}

我可以到达外面的Product_Attribute实体,但是当我尝试获取Product_Attribute的其他实体时 我得到了

指定的包含路径无效。EntityType 'NoxonModel.Product' 未声明名为 'Product_AttributeType' 的导航属性

事实上,这个错误是有道理的。如何解决它并在块之外获取 PRODUCT 实体并且仍然能够访问其他相关表?

这是数据库,非常感谢您:

在此处输入图像描述

4

1 回答 1

2

您可以通过提供以 . 分隔的导航属性名称来预先加载导航属性.

using (var Context = base.Entities)
{
      return Context.Product
          .Include("Product_Attribute")
          .Include("Product_Attribute.Product_AttributeType")
          .Include("Product_Attribute.Product_AttributeType.Product_AttributeType_Title")
          .Include("Product_Attribute.Product_AttributeType.Product_AttributeValueUnit")
}
于 2012-09-19T07:06:02.607 回答