web-dev-qa-db-ja.com

Linq:TimeSpanの2つのDateTimeの違い

私はこれをやろうとしています:

Tickets.Where(t => (t.Date - myTicket.Date) < TimeSpan.FromSeconds(120));

「DbArithmeticExpression引数には数値の共通型が必要です」というエラーが発生します。 TimeSpanの違いが必要であることを考慮して、これを行うにはどうすればよいですか?

前もって感謝します。

16
Leila

SqlFunctions.DateDiff を使用します

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));
27
Magnus

これを使用することもできます。

var result = db.Tickets.Where(t => 
       SqlMethods.DateDiffSecond(myTicket.Date ,  t.Date) < 120);
4
Çağatay Ay

DateTimeを使用した算術演算は、EntityFrameworkではサポートされていません。 SqlFunctions のいずれかを使用する必要があります。だから、あなたの声明のために、次のようなもの:

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));
2
RajN