gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:49:24 27 4
gpt4 key购买 nike

我正在使用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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com