2
    using (var attendanceContext = new AttendanceAppContext())
    {
        var compareLogin = attendanceContext.Attendances.FirstOrDefault(u =>
        u.LoginDate == DateTime.Now.Date &&
        u.Employee.Username == user.Username);

コードは続行され、compareLogin変数は後で使用されますが、ここでは、「指定されたタイプメンバー'Date'はLINQto Entitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみがサポートされています。

データベースの日付を比較する方法を教えてください。

4

2 に答える 2

3

TruncateTime関数を使用できます。

using (var attendanceContext = new AttendanceAppContext())
{
    var compareLogin = attendanceContext.Attendances.FirstOrDefault(u =>
    EntityFunctions.TruncateTime(u.LoginDate) == EntityFunctions.TruncateTime(DateTime.Now) &&
    u.Employee.Username == user.Username);
}

またu.LoginDate、データベースに時刻のない日付がある場合は、DateTime.Todayの代わりに使用してみてくださいDateTime.Now.Date。動作しない場合は、変数(たとえばvar today = DateTime.Today)に抽出して、LINQ式で使用します。

于 2012-12-04T13:39:31.060 に答える
0

コードを次のように変更します。

 var compareLogin = (from a in attendanceContext.Attendances.FirstOrDefault
                     where a.LoginDate == DateTime.Now.Date && a.Employee.Username == user.Username
                     select a).ToList();
于 2012-12-04T13:40:37.783 に答える