1. ホーム
  2. linq

[解決済み] 指定された型メンバー 'Date' は LINQ to Entities でサポートされていません。イニシャライザ、エンティティ・メンバ、およびエンティティ・ナビゲーション・プロパティのみです。

2022-04-26 01:24:53

質問

このコードを エンティティフレームワーク 以下のエラーが発生します。特定の日付のすべての行を取得する必要があります。 DateTimeStart は、このような形式のDataTypeです。 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 でサポートされていません。イニシャライザ、エンティティ・メンバのみです。 およびエンティティナビゲーションプロパティがサポートされています。}

何か解決する方法はありますか?

解決方法は?

DateTime.Date がSQLに変換できない。使用方法 EntityFunctions.TruncateTime メソッドを使用して、日付部分を取得します。

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

UPDATE: @shankbond がコメントで述べているように、Entity Framework 6 では EntityFunctions は廃止されました。 DbFunctions クラスは、Entity Frameworkに同梱されています。