2011-05-02 147 views
4

我有這個基本的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,但結果是一樣的。

+3

您是否使用LINQ2SQL或EF? – 2011-05-02 08:02:30

+1

這可能是[在數據庫上完成填充]的副作用(http://msdn.microsoft.com/zh-cn/library/ms187403.aspx)。 – Lucero 2011-05-02 08:12:28

回答

7

這不是LINQ的問題。這是數據庫如何比較字符串。

如果字符串不具有相同的長度,則較短的字符串在進行比較時會填充空格,因此字符串"LAS""LAS "被認爲是相等的。

參見:http://support.microsoft.com/kb/316626

您可以解決此通過添加另一個字符字符串:

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

是的,這解釋了它。我會找到解決方法。謝謝! – Gerhard 2011-05-02 09:30:22