LINQ to SQL не возвращает данные, но сгенерированный оператор SQL - PullRequest
0 голосов
/ 26 мая 2010

У меня есть запрос LINQ to SQL, который при выполнении не возвращает никаких данных. Однако, когда я отлаживаю, я могу взять сгенерированный запрос SQL, вставить значения переменных и запустить его в SQL Management Studio, чтобы получить ожидаемую запись. Я принимаю значения для переменных в режиме отладки.

Кто-нибудь испытывал что-то подобное раньше?

По запросу оператор LINQ (отредактированные имена таблиц и столбцов):

var q1 = from rr in db.ABC
         from rd in db.DEF
         where rr.a == rd.b
         where rr.c == rd.c
         where rr.d.Equals(id)
         where rr.c.Equals(anotherId)
         select new
         {
             rr.d, rr.x, rr.a, 
             rr.y, rr.z, rr.v, 
             rr.e, rd.r
         };

var r1 = q1.Single();

Я использую очень похожие запросы в других местах с успехом.

Ответы [ 3 ]

3 голосов
/ 26 мая 2010

Запустите профиль SQL Server, возьмите выполняемый им запрос EXACT (вам не нужно «подключать» какие-либо значения) и выполните его.

Вы все еще получаете результаты?
Это правильные значения?
Вы запрашиваете обнуляемое значение?
Не могли бы вы показать нам код и сгенерированный запрос?

2 голосов
/ 26 мая 2010

Запускали ли вы Profiler, чтобы убедиться, что значения, которые, по вашему мнению, будут иметь место, на самом деле соответствуют отправленной на сервер статистике?

2 голосов
/ 26 мая 2010

Я бы дважды проверил строку подключения, которую использует LINQ to SQL.Возможно, он попал не в ту базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...