Linq自动修剪我的弦!

时间:2011-05-02 07:59:00

标签: c# asp.net linq

我有这个基本的linq查询,我想从数据库中获取一个城市。问题是我的搜索字符串被修剪而没有我要求它。我尽可能地简化了它。例如:

var firstCity = 
    from city in db.Cities
    where city.City_Code == "LAS "
    select city;

city.City_Code是“LAS”而不是“LAS”,它仍然以City_Code“LAS”获得城市。

我该如何解决这个问题?我也试过Equals,但结果是一样的。

1 个答案:

答案 0 :(得分:7)

这不是LINQ的问题。这是数据库比较字符串的方式。

如果字符串的长度不同,则较短的字符串在比较时会用空格填充,因此字符串"LAS""LAS "被认为是相等的。

请参阅:http://support.microsoft.com/kb/316626

你可以通过在字符串中添加另一个字符来解决这个问题:

where city.City_Code + "." == "LAS ."