【发布时间】:2018-05-03 17:02:37
【问题描述】:
我目前有以下代码:
var result = query<Items>()
.Where(x => x.Id == someId)
.SelectMany(x => x.SubItems)
.GroupBy(x => x.SubItemId)
.Select(x => new ItemModel
{
SubItemId = x.Key,
SpecialItemCount = x.Where(y => y.IsSpecial == false).Count(),
})
.ToList()...
当我调用“Count()”时,它会查询所有子项计数,而忽略我的谓词“y.IsSpecial”。我在 EF Core 2.0.X 和 EF Core 2.1 preview 2 上尝试过,这可能是一个错误吗?
【问题讨论】:
-
我相信
GroupBy尚未在 EF Core 中实现,因此这会将所有表拖到内存中并在本地分组。 -
2.1支持,控制台无警告
-
是的,但不确定它的效果如何。请注意,您也可以将计数写为
x.Count(y => !y.IsSpecial) -
有时间去看看。为了清楚起见,它不会发生在 2.0.2 上,对吧?仅在 2.1 预览版 2 上?
-
这是 2.1,preview-2 最终版本。不幸的是,我不记得它是哪个确切版本(2.0.x)
标签: c# asp.net ef-core-2.0