0

У меня есть службы .NET (с использованием Entity Framework 6.0.0-RC-1)же «Где» каждый раз возвращает другой результат

public class MyController : ApiController 
{ 
    protected DbConnection _connection = new DbConnection(); 

    public HttpResponseMessage MyProcedure1() 
    { 
     ... 
     var dayPlans = _connection.DayPlans 
          .Where(dp => dp.period >= start && dp.period < end); 
     if (dayPlans.Count() > 0) 
     { 
      //success 
     } 
     else 
     { 
      //fail 
     } 
     ... 
    } 

    public HttpResponseMessage MyProcedure2() 
    { 
     ... 
     var dayPlans = _connection.DayPlans 
          .Where(dp => dp.period >= start && dp.period < end); 
     if (dayPlans.Count() > 0) 
     { 
      //success 
     } 
     else 
     { 
      //fail 
     } 
     ... 
    } 
} 

Эти процедуры который используется одновременно стороне клиента. Вещь время от времени dayPlans.Count() равна нулю, пока она не должна. Я дважды проверял параметры фильтрации и содержимое базы данных, есть несколько записей, которые нужно выбрать из db, но это не так.

Еще один важный момент - когда запрос LINQ в одном методе выходит из строя, он всегда терпит неудачу в другом. Но когда эти процедуры вызывают один за другим, они могут потерпеть неудачу во всех возможных вариантах - первый запрос не выполнен, второй - первый сбой второй не удался; и т.д.

В чем может быть проблема?

+3

Вы показали два метода, которые делают то же самое - почему? Также обратите внимание, что использование 'Any()' более понятно, чем использование 'Count()> 0' и может быть более эффективным в некоторых сценариях. –

+0

Что такое 'DbConnection'? Это контекст данных? –

+1

Где установлены 'start' и' end'? – Groo

ответ

0

Это была моя ошибка, границы даты не были рассчитаны правильно