У меня есть службы .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 в одном методе выходит из строя, он всегда терпит неудачу в другом. Но когда эти процедуры вызывают один за другим, они могут потерпеть неудачу во всех возможных вариантах - первый запрос не выполнен, второй - первый сбой второй не удался; и т.д.
В чем может быть проблема?
Вы показали два метода, которые делают то же самое - почему? Также обратите внимание, что использование 'Any()' более понятно, чем использование 'Count()> 0' и может быть более эффективным в некоторых сценариях. –
Что такое 'DbConnection'? Это контекст данных? –
Где установлены 'start' и' end'? – Groo