c# - EF上父包含子的SQL查询

标签 c# linq mvvm silverlight-4.0 ria

我正在使用RIA Services - MVVM pattern在C#上使用Silverlight。当我尝试从OrdersOrdersDetails获取记录时,出现以下错误:

'Notes' is not a member of
'Transient.collection[XXX.SilverLight.Web.Models.OrderDetails(Nullable=True,DefaultValue=)]'.
To extract a property of a collection element, use a subquery to iterate over the collection. Near simple identifier, line 6, column 58.



这是我的查询:
public IQueryable<Order> AdvancedSearchOrder(string condition)
{
    ObjectQuery<Order> myQuery = new ObjectQuery<Order>("Orders", DbContext.ObjectContext()).Include("OrderDetails");
    if (condition != "")
    {
        myQuery = myQuery.Where(condition);
    }
    return myQuery;
}

在这种情况下,我有
condition = "( (it.CustomerName like 'test')  )  and  ( (it.OrderDetails.Notes like 'testnote') )";

当我设置为
condition = "( (it.CustomerName like 'test')  )";

然后,它很棒。

最佳答案

您正在尝试将it.OrderDetails用作集合,这可能不是因为它具有复数名称。我将推断您的数据模型是每个Order都有一个或多个OrderDetail记录。 OrderDetail对象列表没有Notes属性。单个OrderDetail可以。我不确定RIA语法,但是应该是这样的:

condition = "( (it.CustomerName like 'test')  )  and  ( 
      (it.OrderDetails.Notes.Any(n => n.Contains('testnote') 
)";

关于c# - EF上父包含子的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10795926/

相关文章:

c# - 在运行时计算类代码的哈希值 (C#)?

c# - 按日期部分分组 (dd.mm.yyyy)

linq - 如何拒绝 Linq to SQL DataContext 中的所有更改?

wpf - 您的 ViewModel 是否应该将 XAML 元素作为属性公开?

c# - 是否可以在 MVVM 模式中使用 WindowsFormsHost?

model-view-controller - 如果它与其他页面相同,您会创建一个 View 模型吗?

c# - 多个路由分配给一个方法,如何确定调用了哪个路由?

c# - 代码协定和 ASP.NET MVC Controller 属性

javascript - javascript 中的 C# 只执行一次

c# - 如何查询 Entity Framework 中的非映射属性?