mvvm - wcf ria服务中的调用操作无法包含外键表

标签 mvvm silverlight-4.0 wcf-ria-services ria

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

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/

相关文章:

c# - WPF ListBox 绑定(bind)首先起作用,但之后不起作用

c# - 组合框触发空选择

silverlight-4.0 - Sl 4, MVVM : Using Inlines in a TextBlock, 如何绑定(bind)到ViewModel?

c# - "The type or namespace name ' 引用System.Xml.dll时XmlSerializer ' could not be found"错误

silverlight - 学习 WCF RIA 服务的最佳资源

c# - WPF和MVVM Light-通过Messenger关闭带有按钮的子窗口

c# - 动态用户控件更改 - WPF

silverlight - 在 Silverlight 4 中(在客户端)编码音频(为 AAC)?

silverlight - MVVM-light + RIA 服务最佳实践

c# - 为什么 IEntityCollection 是内部的/如何查找 EntityCollection<T>.Count?