相同的“Where”每次返回不同的结果

时间:2013-09-19 11:59:28

标签: c# linq entity-framework linq-to-entities entity-framework-6

我有一个.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请求失败时,它总是在另一个方法中失败。但是当这些程序被一个接一个地调用时,它们可能会在所有可能的变体中失败 - 首先请求失败,第二个成功;第一次失败第二次失败等

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

这是我的错误,日期边界未正确计算