gpt4 book ai didi

linq-to-sql - LINQ 到 SQL : IQueryable - string contains - method has no supported translation to SQL

转载 作者:行者123 更新时间:2023-12-01 11:03:56 36 4
gpt4 key购买 nike

亲爱的 LINQ 或 linq2sql 专家,您能帮我解决这个案例吗?

我有 Book 类,每本书都有一个 List,我想要的是在 Authors 列表中查找其作者姓氏包含特定 searchAuthor 字符串的书籍,如下所示:

string searchAuthor = "foo";
IQUeryable books = BookStaticRepository.SelectAll();

books.Where(r => r.Authors.Any(x => searchAuthor.Contains(x.lastname, StringComparison.OrdinalIgnoreCase)));

我得到了什么这个错误:

方法 'Boolean Contains(System.String, System.String, System.StringComparison)' 不支持转换为 SQL。

我已经尝试过相同但使用 IEnumerable 的方法,并且它有效 .由于性能问题,我不得不切换到 IQueryable...我需要它与 IQueryable 一起使用。

谢谢你的帮助。

最佳答案

Contains 的特定过载不起作用,但忽略 StringComparison将使其转换为 SQL,这将生成 LIKE %SearchInput% .默认情况下,这将不区分大小写,除非您的数据库设置为区分大小写。

像这样:

string searchAuthor = "foo";
IQUeryable books = BookStaticRepository.SelectAll();

books.Where(r => r.Authors.Any(x => searchAuthor.Contains(x.lastname)));

关于linq-to-sql - LINQ 到 SQL : IQueryable - string contains - method has no supported translation to SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039016/

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