当使用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/

10-17 00:03