指定された型メンバー 'Date' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみ質問する

指定された型メンバー 'Date' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみ質問する

このコードを使用するエンティティフレームワーク次のエラーが表示されます。特定の日付のすべての行を取得する必要があります。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.DateSQLに変換できません。エンティティ関数.切り捨て時間日付部分を取得するメソッド。

var eventsCustom = eventCustomRepository
.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
.Where(x => EntityFunctions.TruncateTime(x.DateTimeStart) == currentDate.Date);

更新: @shankbondがコメントで述べたように、Entity Framework 6ではEntityFunctionsは廃止されており、DbFunctionsEntity Framework に同梱されているクラスです。

おすすめ記事