Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ to SQL:日期格式的一部分出错_C#_Linq_Entity Framework_Windows Phone 7 - Fatal编程技术网

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

C# LINQ to SQL:日期格式的一部分出错,c#,linq,entity-framework,windows-phone-7,C#,Linq,Entity Framework,Windows Phone 7,我有一个应用程序,我想找到一年中不同的可用月份。但是,通过下面的查询,我得到了错误消息 日期格式的一部分出错。[表达式(如果已知)=] 当我尝试执行以下查询时: IQueryable<DateTime> availableMonths = (from item in database.IntakeItems where item.Timestamp >= statsYearStart && item.Timestamp

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

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

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

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);
数据库是通过使用EntityFramework的代码优先方法创建的。item.Timestamp的列定义为:

private DateTime timestamp;

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

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

我认为问题在于您将
日期时间的
年份设置为
1
,并且我认为EF的最小日期为

1/1/1753

太棒了,就是这样。谢谢你的快速回答@很高兴我能帮上忙:)如果你能,如果你对答案满意,请接受它,这样问题就可以结束了。我会在10分钟后尽快回答:)+1。我不认为EF本身就有那个最短的日期,而是一些数据库作为一种方式来回避关于1752-09-03到1752-09-13的问题,这在英国或她的殖民地(包括后来成为美国的殖民地)是没有发生的,因为那时他们从儒略历改为公历。SQLServer对其
datetime
数据类型有此限制,尽管
datetime2
通过使用前公历(也就是说,假装公历一直在使用,因此1752-09-14之前的一天被称为1752-09-13,而不是1752-09-02)来规避此限制。
1/1/1753