【发布时间】:2018-03-31 10:35:22
【问题描述】:
有没有办法强制 LINQ to SQL 执行不区分大小写的包含?
我正在 Entity Framework Core 上使用 PostgreSQL。
【问题讨论】:
-
最直接的方式是
ctx.Table.Where(c => c.Column.ToLower().Contains(searchTerm.ToLower()) -
@Evk 该解决方案有效,但如果索引相同的字符串,它将导致数据库跳过索引并执行表查找。需要记住的一点。
-
@aevitas 没有必要。 Postgesql 允许在表达式上定义索引,因此您可能在 lower(YourColumn) 上有索引,这样的索引将用于上面的查询。当然,仍然值得牢记。
标签: c# .net string entity-framework-core case-insensitive