gpt4 book ai didi

c# - 本地序列不能在 LINQ to SQL 中使用

转载 作者:太空狗 更新时间:2023-10-30 01:05:27 24 4
gpt4 key购买 nike

Local sequence cannot be used in LINQ to SQL implementations of query operators except the Contains operator.

我从下面的 linq 查询中得到这个错误:

List<Something> results = new List<Something>(items
.Where(w => selecteditems.Count == 0 || w.ops.Intersect(selecteditems).Count() > 0)
.ToList()
.OrderBy(a => a.FirstNumber)
.OrderBy(b => b.SecondNumber));

相交会抛出这个错误吗?

最佳答案

查询提供程序不知道如何将 w.ops.Intersect(selecteditems) 转换为 SQL 查询。

如果 selecteditems 是来自同一查询提供程序的另一个查询,那么它可能能够翻译它们,或者如果整个操作是在 Linq-to-Objects 中完成的,而不是 Linq-to- SQL,那就没问题了。

根据错误消息,它知道如何对此类对象执行的唯一操作是包含。您可以重新处理您的查询以改为使用它:

.Where(w => selecteditems.Count == 0 || 
w.ops.Any(op => selecteditems.Contains(op)))

那 [应该] 有效。

关于c# - 本地序列不能在 LINQ to SQL 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728259/

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