LINQ to SQL:日期格式的一部分出错

时间:2013-12-02 19:27:42

标签: c# linq entity-framework windows-phone-7

我有一个应用程序,我想找到给定年份可用的不同可用月份。但是,通过下面的查询,我收到错误消息

  

部分日期格式出错。 [表达式(如果已知)=]

当我尝试执行以下查询时:

IQueryable<DateTime> availableMonths =
    (from item in database.IntakeItems
     where item.Timestamp >= statsYearStart
             && item.Timestamp <= statsYearEnd
     select new DateTime(1, item.Timestamp.Month, 1))
     .Distinct()
     .OrderByDescending(y => y.Month);

statsYearStartstatsYearEnd在属性设置器中创建,并在执行查询时包含有效的DateTime:

statsYearEnd = new DateTime(value, 12, 31);
statsYearStart = new DateTime(value, 1, 1);

使用EntityFramework通过代码优先方法创建数据库。 item.Timestamp的列定义为:

private DateTime timestamp;

[Column]
public DateTime Timestamp
{
    get
    {
        return timestamp;
    }
    set
    {
        if (timestamp != value)
        {
            NotifyPropertyChanging();
            timestamp = value;
            NotifyPropertyChanged();
        }
    }
}

我对LINQ和EF很新,所以如果您需要其他信息,请告诉我。起初我怀疑这可能是因为本地化问题(应用程序),但我没有在任何.ToString上使用DateTime。什么可能导致异常?

1 个答案:

答案 0 :(得分:2)

我认为问题在于您将Year的{​​{1}}设置为DateTime,并且我认为EF的最短日期是

1