0

ラムダ式を使用している EF クエリがあります。2 つの日付の差を取得しようとすると、例外がスローされます。

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

私のクエリは

var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 && ((System.DateTime.Now.Date - l.ToDate.Date).TotalDays)==0)
    .Include("Employee")
    .Include("Employee.Manager")
    .ToList();

誰かが私にこのことを正しくする方法を教えてもらえますか?

4

2 に答える 2

4

SqlFunctionsのヘルパーを使用する必要がありますSystem.Data.Objects.SqlClient。これを試して:

var today = DateTime.Now.Date;
var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 && 
                                      (SqlFunctions.DateDiff("day", today, l.ToDate))==0)
    .Include("Employee")
    .Include("Employee.Manager")
    .ToList();
于 2012-05-24T08:25:56.930 に答える
1

Entity Framework では、DbFunctionsヘルパーを使用することをお勧めしますSystem.Data.Entity

これを試して:

var today = DateTime.Now.Date;
var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 && 
                                      (DbFUnction.DiffDays(today, l.ToDate))==0)
    .Include("Employee")
    .Include("Employee.Manager")
    .ToList();
于 2014-03-24T14:19:26.957 に答える