带有多个包含的Linq
本文关键字:Linq 包含 | 更新日期: 2023-09-27 18:19:18
在我们的UI中,用户可以自由文本搜索应用于多个字段。
q = q.Where(p => p.Account.Contains(query)
|| p.AccountName.Contains(query)
|| p.AccountAKA.Contains(query)
|| p.AccountRef.Contains(query));
转换成SQL。是否有更优的查询方式,因为这是缓慢的。
大约有20,000行。数据库磁盘大小无关紧要,重要的是内存使用率
由于所有这些都是文本字段,每个值都转换为Account LIKE '%'+ query+ '%'
。所有两边都有通配符的查询都会很慢,不幸的是没有太多可以做的。
也许可以用StartsWith()
代替Contains()
?这将转化为' LIKE查询+ '%',这通常要快得多?
一个更好的解决方案是更改您的数据模型,并使用包含所有帐户名称信息的Description
列,以便您可以对单个列进行查询。对记录的更新导致对Description列的更新。