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