2012-04-03 20 views
8

を使用して、イベントを呼び出すことができます。このEventオブジェクトには、DateTime?のDateプロパティがあります。私が欲しいのは、2つのTimeSpansの間にあるイベントを取得することです。私はモデルを持って、私はASP.NET MVCで3</p> <p>をLINQでクエリを実行しようとしているのDateTime?LINQクエリで.Value.TimeOfDay

今の私のコードは次のようになります。

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」がエンティティにLINQでサポートされていません。」

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

EDIT:

私はe.Date.Value後に、ここで「TIMEOFDAY」を書くために忘れてしまった。とにかく、私は私のコードでやった

私が持っているので、私は日時を使用することはできません。イベントの日付にもかかわらず、一日の特定の時間の間に発生したフィルタイベント。

+1

あなたのサンプルコードは 'TimeOfDay'を使用していません - 実際には、あなたのコードごとに' Date'を使用する代わりに仮定しますか? –

+1

2つのDateTimeオブジェクトの代わりに2つのTimeSpanオブジェクトを使用してイベントをフィルタリングするのはなぜですか? – Steven

答えて

13

Date and Time Canonical Functions for LINQ-to-Entitiesを使用してください。あなたが必要な場合は具体的には、

CreateTime(hour, minute, second) 

を見て正規の関数を呼び出すのを助ける、How To: Call Canonical Functionsを見てください。

+0

これは軌道にあるようですが、私は砲門関数について知らなかった。ありがとう!しかし、これらを使用してDateTimeをTimeに変換するにはどうすればよいですか? – Umagon

+0

@Umagon: 'datetime.Hour'、' datetime.Minute'と 'datetime.Second'を使います。 – jason

+1

ああ私の神!これは私の問題を解決しました!私はあなたを愛していると思います、笑。どうもありがとうございました! :D – Umagon

関連する問題