gpt4 book ai didi

c# - 包含值列表的属性的 EFCore 过滤器

转载 作者:行者123 更新时间:2023-12-05 06:54:48 26 4
gpt4 key购买 nike

我正在尝试根据实体特定字段中的搜索值列表来过滤实体。

例如:

var searchValues = new List<string> { "abc", "xyz" };
var posts = Context.Posts
.Where(p => searchValues.Any(v => p.Title.Contains(v)))
.ToList();

这会生成异常“无法翻译 LINQ 表达式。以可以翻译的形式重写查询,或者通过插入对‘AsEnumerable’、‘AsAsyncEnumerable’、‘ToList’的调用显式切换到客户端评估,或“ToListAsync”。

应用包含具有多个搜索值的过滤器的正确方法是什么?

最佳答案

如果你在它应该工作的地方之前将帖子转换为列表。

var posts = Context.Posts.ToList()
.Where(p => searchValues.Any(v => p.Title.Contains(v)));

这样就不必将过滤器转换为 SQL(或您正在使用的任何数据库)。

要注意的是,所有帖子数据都将加载到内存中以生成列表。这可能会或可能不会被接受,具体取决于帖子和数据库调用的数量。

关于c# - 包含值列表的属性的 EFCore 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65461034/

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