【发布时间】:2021-11-11 18:59:50
【问题描述】:
这是我的代码:
var emoji = "⭐";
var query = myContext.Products.Where(x => x.Name.Contains(emoji));
var queryString = query.ToQueryString();
var list = query.ToList();
查询返回所有表记录。如果我将 contains 替换为 equal 效果很好,但我必须搜索这样的内容:
"this is my emoji ⭐"
这是 SQL 查询:
DECLARE @__emoji_0 nvarchar(4000) = N'⭐'
SELECT [p].[Id], [p].[Name], [p].[Quantity]
FROM [Products] AS [p]
WHERE (@__emoji_0 LIKE N'') OR (CHARINDEX(@__emoji_0, [p].[Name]) > 0)
在 EF Core 或原始 SQL 中有什么方法可以做到这一点?
【问题讨论】:
-
这是您要寻找的特定角色吗? “白色中星”U+2B50 本身不是表情符号字符,因为它位于基本多语言平面中,因此应该使用
N'⭐'或nchar(11088)匹配。
标签: sql-server asp.net-core entity-framework-core