【发布时间】:2021-10-29 19:50:41
【问题描述】:
List<string> groupId = request.GroupId.Split(',').ToList();
ENTITIES.ProductGroup
.Where(p => p.IsDisplay)
.Where(p => p.FK_GroupNavigation.IsDisplay)
.Where(p => groupId.Any(g => g == (p.FK_Group ?? 0) + "")
.ToList();
request.GroupId 中的值为"12,15" 与表中相同的值,但报如下错误。
在 Ef Core 中,我想在另一个列表中搜索某个值,但它给出了以下错误问题是什么?
TargetFramework=5.0
LINQ 表达式 'DbSet() .Where(p => p.IsDisplay) .LeftJoin( 内部:DbSet(), outerKeySelector: p => EF.Property
(p, "FK_Group"), innerKeySelector: g => EF.Property (g, "PK_Group"), resultSelector: (o, i) => new TransparentIdentifier ( 外 = o, 内 = 我 )) .Where(p => p.Inner.IsDisplay) .Count(p => __groupId_0 .Any(g => (g ?? "").Equals((object)(p.Outer.FK_Group ?? 0) + "")))' 无法翻译。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用显式切换到客户端评估。
【问题讨论】:
-
p.FK_Group 是什么数据类型?看起来它可以为空,如果是,则设置为整数值 0,但您正在将该值与字符串列表进行比较。如果 groupId 包含整数列表会怎样?
-
@PeterG 编译器本身会收到此错误。现在的问题是别的东西。帖子已更新
标签: c# list .net-core entity-framework-core