你好。
我正在使用一个返回“产品”类的调用操作
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]
public Order Order { get; set; }
但是我仍然无法在集合中获取Order_Detail。
等待积极回应。
最佳答案
这是预期的行为。调用旨在在服务器上执行操作或检索简单对象。如您所见,InvokeOperation回调不包含通常的Entities/AllEntities属性,这些属性为Included Entities腾出了空间。我建议您使用带有参数的标准加载操作来获取数据。
public IQueryable<Product> GetProductById(int Id)
{
return this.ObjectContext.Product.Include("Order_Detail").Where(d=>d.ProductID=Id);
}
如果您要实现的是“不累积执行”(即,不要将查询结果加载到domainContext的entityContainer中),那么可以看看Mathew Charles的这个post
关于mvvm - wcf ria服务中的调用操作无法包含外键表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282637/