【发布时间】:2019-03-18 06:27:11
【问题描述】:
我在带有 EF 的 .net Core 2.2 中有如下查询。
var data = context.Customer
.GroupJoin(context.Orders, c=> c.Id, o => o.CustoerId, (c, o) => new
{
customer = c,
orders= o
}).Select(s => new
{
s.customer.Name,
s.customer.Id,
AllOrdersRef = s.orders == null ? null : string.Join(", ", s.orders.Select(x => x.UniquRef))
});
它给出错误
无法翻译 LINQ 表达式“Count()”,将在本地计算。
我想要的只是 AllOrdersRef 中的逗号分隔值。我也不想用 ToList()。
【问题讨论】:
-
你确定这是你得到错误的地方吗?这里没有
.Count -
我认为
string.Join不会在IQuerable<T>中使用,您在DbSet<Customer>和DbSet<Orders>上使用linq,这就是为什么。可能你也有一些例外 -
我相信你在“c.customer.Id”后面会出错,因为你没有逗号。
-
你到底为什么要将UniqueRefs字符串连接成一个字符串?
标签: c# linq lambda entity-framework-core