1

实体图

你好。我正在使用返回类“产品”的调用操作

public Product GetProductById(int Id)
        {
            Product Record = this.ObjectContext.Product.Include("Order_Detail").Where(d=>d.ProductID=Id).FirstOrDefault()
            return Record;
        }

但我无法在课程的完成事件中获得 Order_Detail

InvokeOperation<Product> Invk = ObjProduct.GetProductById();
                Invk.Completed += (sender, e) =>
                {
                    if (!Invk.HasError)
                    {
                        Product ObjProduct = Invk.Value;
                        Order objorder=ObjProduct.Order_Detail;
                    }
                };

我将 ObjProduct.Order_Detail 设为 Null 我不知道为什么我无法在此 Product 实体中包含 Order_Detail

我也在元数据中写了 [Include]

[Include]
public Order Order { get; set; }        

但我仍然无法在集合中获得 Order_Detail。等待正面回应。

4

1 回答 1

2

这是预期的行为。调用旨在在服务器上执行操作或检索简单对象。
如您所见,InvokeOperation 回调不包含为包含实体腾出空间的常用实体/所有实体属性。
我建议您使用带有参数的标准加载操作来获取数据。

public IQueryable<Product> GetProductById(int Id)
    {
        return this.ObjectContext.Product.Include("Order_Detail").Where(d=>d.ProductID=Id);
    }

如果您要实现的是“非累积执行”(即不要使用查询结果加载您的 domainContext 的 entityContainer),请查看Mathew Charles的这篇文章

于 2012-11-08T09:53:41.503 回答