我有以下内容:
var currentDate = DateTime.UtcNow;
var calendarEntry = from item in new CalendarEntryRepository(this.Db).List().Where(x => x.Culture == language.Value)
group item by item.ContentObjectId into g
let itemMaxDate = g.Where(i => i.StartDate > currentDate).Select(i => i.StartDate).DefaultIfEmpty()
let city = g.Select(i => i.City).FirstOrDefault()
select new
{
ContentObjectId = g.Key,
StartDate = itemMaxDate,
City = city ?? string.Empty
};
从CalendarEntryRepository我想按ContentObjectId进行分组(这很好)。但是当我添加这一行时:
let itemMaxDate = g.Where(i => i.StartDate > currentDate).Select(i => i.StartDate).DefaultIfEmpty()
我一直收到这个错误:
Message = "The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value."
我要做的是按ContentObjectId进行分组,然后获得比今天更大的StartDate。
我正在使用实体框架和MS SQL2008 感谢
答案 0 :(得分:1)
数据库中DateTime的最小值具有较低的值,MinValue定义为您在应用程序中使用的文化。
答案 1 :(得分:1)
将DataBase中的StartDate列更改为数据类型DateTime2以支持更广泛的日期范围