当使用linq来实体进行字符串比较时,会忽略空格。Linq to Entity比较字符串忽略空格
在我的表格中,我有一个nchar(10)列,所以如果不是10个字符,任何数据都会被其余空格填充。下面我将“ncharTextColumn”与"Four"
字符串进行比较。甚至想到了ncharText将等于"Four "
这导致了比赛和“结果”变量将包含1个记录
TestEntities1 entity = new TestEntities1();
var result = entity.Table_1.Where(e => e.ncharText == "Four");
对此有一个解释,一个方法来解决它还是我将不得不在任何像这样的comaprisons之前,在我的查询中调用ToList。
var newList = result.ToList().Where(e => e.ncharText == "Four");
此代码现在可以正确返回0个记录,因为它考虑了空格。然而,在比较之前调用列表可能会导致将大型集合加载到内存中,这不会最终被使用。
你不能只是做'e.ncharText.Trim()== “四”'? –