【发布时间】:2017-10-23 20:18:54
【问题描述】:
当前使用 .NET Core 2。
我使用类似于以下内容的 LINQ 查询:
var peopleInRoseStreet = context.Person
.Include(p => p.Addresses)
.Where(p => p.Addresses.Any(a => a.Text.Contains("rose")));
EF 似乎将其翻译为:
SELECT "p".*
FROM "Person" AS "p"
WHERE EXISTS (
SELECT 1
FROM "PersonAddress" AS "a"
WHERE (instr("a"."Text", 'rose') > 0) AND ("p"."Id" = "a"."person_id"))
ORDER BY "p"."Id"
通过使用instr(),比较区分大小写,尽管 PersonAddress.Text 列设置为COLLATE NOCASE。如果我将上面的查询修改为使用 LIKE,则搜索是不区分大小写的。
是否可以强制EF使用LIKE?
【问题讨论】:
标签: entity-framework sqlite entity-framework-core sql-like case-insensitive