Проблема с простым запросом LINQ To Entities - PullRequest
0 голосов
/ 18 сентября 2010

У меня очень простой запрос LINQ To Entities:

   var orderID = 1;
    var orders = (from o in db.Orders
                where o.OrderID == orderID
                select o).SingleOrDefault();

Может кто-нибудь сказать мне, почему этот запрос не будет работать? Это даже не исключение. Я также проверил профилировщик SQL, и вышеупомянутый запрос даже не запускает соответствующий запрос SQL. Но когда я непосредственно вставляю значение orderID в запрос , где o.OrderID == 1 , тогда все работает нормально.

1 Ответ

0 голосов
/ 18 сентября 2010

Во-первых, гораздо более простой запрос будет

var specifiedOrders = db.Orders.SingleOrDefault(o => o.OrderID == orderID);

Во-вторых, вы уверены, что ваш запрос не запускается в sql?По умолчанию Linq откладывает выполнение запроса как можно позже.Это означает, что он будет выполнять запрос только при вызове GetEnumerator или аналогичной операции с запросом.Однако в вашем примере запрос .SingleOrDefault () должен выполнить запрос.

Проверьте следующее:

  1. Результат запроса.Какова стоимость заказов?
  2. Если вы выполните это в Visual Studio, наведите курсор на db.Orders и проверьте его значение.
  3. Вы подключаетесь к правильной базе данных?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...