【发布时间】:2021-11-15 04:38:28
【问题描述】:
我正在尝试使用EF Functions 之类的方法检查两个字符串的相等性,但是它以某种方式失败并且在空格上为空。
这两个字符串如下所示,这里你可以观察到唯一的区别是SPACE的情况
displayName 是 L1-008-5 SPACE,我已将 Displayname 存储在空间标识对象中,如下所示 L1-008-5 Space
L1-008-5 SPACE 和 L1-008-5 Space
这里是代码
var space = dbContext.Spaces.SingleOrDefault(a => EF.Functions.Like(a.SpaceIdentity.DisplayName, displayName));
我也尝试了以下选项
dbContext.Spaces.SingleOrDefault(s => s.SpaceIdentity.DisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase));
dbContext.Spaces.SingleOrDefault(s => string.Equals(s.SpaceIdentity.DisplayName,displayName, StringComparison.OrdinalIgnoreCase));
以上都不起作用,并且在空格上为空。
谁能指出我在上述比较中做错的正确方向。
非常感谢!
【问题讨论】:
-
您需要提供一些示例输入和输出。另外,
displayName中的内容是什么? -
@DavidG 我修改了问题
-
所以您正在寻找不区分大小写的搜索?
-
您的数据库对 DisplayName 字段的排序规则设置是什么?
-
LIKE 查询受数据库排序规则设置的影响,设置为什么?
标签: c# entity-framework linq