このコードを使用するエンティティフレームワーク次のエラーが表示されます。特定の日付のすべての行を取得する必要があります。DateTimeStart
この形式のデータ型です。2013-01-30 12:00:00.000
コード:
var eventsCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
.Where(x => x.DateTimeStart.Date == currentDateTime.Date);
エラー:
base {System.SystemException} = {"指定された型メンバー 'Date' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。"}
修正方法のアイデアはありますか?
ベストアンサー1
DateTime.Date
SQLに変換できません。エンティティ関数.切り捨て時間日付部分を取得するメソッド。
var eventsCustom = eventCustomRepository
.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
.Where(x => EntityFunctions.TruncateTime(x.DateTimeStart) == currentDate.Date);
更新: @shankbondがコメントで述べたように、Entity Framework 6ではEntityFunctions
は廃止されており、DbFunctions
Entity Framework に同梱されているクラスです。