8

ASP.NETMVC3でLINQを使用してクエリを実行しようとしています。

私はモデルを持っています、それをイベントと呼びましょう。このEventオブジェクトには、DateTime?のDateプロパティがあります。私が欲しいのは、2つのTimeSpansの間にあるイベントをフェッチすることです。

現在、私のコードは次のようになっています。

TimeSpan From = new TimeSpan(8,0,0);
TimeSpan Until = new TimeSpan(22,0,0);

var events =
    from e in db.Events
    where e.Date.Value.TimeOfDay >= From,
          e.Date.Value.TimeOfDay <= Until
    select e;

「指定されたタイプメンバー'TimeOfDay'はLINQtoEntitiesではサポートされていません」という例外がスローされます。

私はこの問題を回避する方法がありません、そして私は一日中試みてきました。私を助けてください、私はとてもイライラしています。:(

編集:

e.Date.Valueの後に「TimeOfDay」をここに書くのを忘れました。とにかく、私は自分のコードでやりました。

イベントの日付に関係なく、特定の時刻の間に発生するイベントをフィルタリングする必要があるため、DateTimeを使用できません。

4

1 に答える 1

14

LINQ-to-Entitiesの日付と時刻の正規関数を使用します。具体的には、

CreateTime(hour, minute, second)

標準関数の呼び出しについてサポートが必要な場合は、How To: Call Canonical Functions を参照してください。

于 2012-04-03T20:07:47.173 に答える