2011-01-27 9 views
0

を比較私は、次のしている:LINQグループによると、日付

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であると。私は、データベース内のDateTimeの おかげ

+0

DBとは何ですか? –

+0

DateTime.Nowはあなたに1/1/1753より小さい日付を与えますか? – Magnus

答えて

1

分価値実体framworkとMS SQL2008を使用してい

はMinValueプロパティは、あなたのアプリケーションで使用される彼の文化int型定義されたという低い値を持っています。

+0

私は何をしたいのですか? – ShaneKm

+0

あなたのdbがmysqlの場合はこの質問を見てくださいhttp://stackoverflow.com/questions/4626820/nhibernate-unable-to-convert-mysql-date-time-value-to-system-datetime/4626927#4626927 –

+0

私はmysqlを使用していない – ShaneKm

1

より広い範囲の日付をサポートするために、データベースのStartDate列をデータ型DateTime2に変更してください。

関連する問題