#c# #asp.net #linq
#c# #asp.net #linq
Вопрос:
У меня есть этот базовый запрос linq, в котором я хочу получить город из базы данных. Проблема в том, что моя строка поиска обрезается без моего запроса об этом. Я максимально упростил ее. Пример:
var firstCity =
from city in db.Cities
where city.City_Code == "LAS "
select city;
Город.City_Code — это «LAS», а не «LAS», тем не менее, он получает город с City_Code «LAS».
Как мне это решить? Я также пробовал Equals, но результат тот же.
Комментарии:
1. Вы используете Linq2SQL или EF?
2. Вероятно, это побочный эффект заполнения, выполняемого в базе данных .
Ответ №1:
Это не проблема с LINQ. Так база данных сравнивает строки.
Если строки не имеют одинаковой длины, более короткая строка дополняется пробелами при их сравнении, поэтому строки "LAS"
и "LAS "
считаются равными.
Смотрите: http://support.microsoft.com/kb/316626
Вы могли бы обойти это, добавив другой символ к строкам:
where city.City_Code "." == "LAS ."