当使用LINQ对实体进行字符串比较时,将忽略空格。
在我的表中,我有一个nchar(10)列,因此,如果保存的数据不是10个字符,则其余数据将用空白填充。下面,我将“ncharTextColumn”与"Four"
字符串进行比较。即使ncharText等于"Four "
,它也会导致匹配,并且“result”变量将包含1条记录
TestEntities1 entity = new TestEntities1();
var result = entity.Table_1.Where(e => e.ncharText == "Four");
有没有对此的解释以及解决方法,还是我必须在进行类似的比较之前在查询中调用ToList。
var newList = result.ToList().Where(e => e.ncharText == "Four");
现在,由于考虑到空格,此代码可以正确返回0条记录。但是,在比较之前调用list可能会导致将大量集合加载到内存中,而最终将不会被使用。
最佳答案
This答案说明了原因。
在内部LINQ只是对数据库进行SQL查询。
关于c# - Linq to Entity比较字符串会忽略空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23613930/