我有这个基本的linq查询,我想从数据库中获取一个城市.问题是我的搜索字符串被修剪而没有我要求它.我尽可能地简化了它.例:
var firstCity =
from city in db.Cities
where city.City_Code == "LAS "
select city;
Run Code Online (Sandbox Code Playgroud)
city.City_Code是"LAS"而不是"LAS",它仍然以City_Code"LAS"获得城市.
我该如何解决这个问题?我也试过Equals,但结果是一样的.
这不是LINQ的问题.这是数据库比较字符串的方式.
如果字符串不具有相同的长度,较短的字符串用空格填充他们相比时,这样的字符串"LAS"和"LAS "被认为是相等的.
请参阅:http://support.microsoft.com/kb/316626
你可以通过在字符串中添加另一个字符来解决这个问题:
where city.City_Code + "." == "LAS ."
Run Code Online (Sandbox Code Playgroud)