亲爱的 LINQ 或 linq2sql 专家,你能帮我解决这个问题吗?
我有 Book 类,每本书都有一个列表,我想要的是找到作者列表中作者姓氏包含特定 searchAuthor 字符串的书籍,如下所示:
string searchAuthor = "foo";
IQUeryable books = BookStaticRepository.SelectAll();
books.Where(r => r.Authors.Any(x => searchAuthor.Contains(x.lastname, StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
我得到这个错误是什么:
方法“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)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8230 次 |
最近记录: |