Lightswitch查询中的DataServiceOperationException

时间:2012-10-01 14:39:58

标签: linq visual-studio-lightswitch

有谁能告诉我这里的日期比较可能有什么问题?

在位置60“reffering to s.SwipeDateTime.Value.Date”的“Edm.DateTime”类型中没有属性'Date'

        var lastSwipe = (from s in this.DataWorkspace.ApplicationData.EmployeeSwipeLogs
                         where s.Employee.Id == emp.Id &&
                         s.SwipeIsValid == true &&
                         s.SwipeDateTime.Value.Date == DateTime.Today
                         orderby s.SwipeDateTime descending
                         select s).FirstOrDefault();

3 个答案:

答案 0 :(得分:1)

很简单,您使用的LINQ提供程序可能不支持Convert.ToDateTime。无论如何,s.SwipeDateTime的类型是什么?如果它已经DateTime,则您不需要首先进行转换 - 如果它不是 DateTime,它可能应该是。请注意,您可以使用DateTime.Today代替DateTime.Now.Date,我个人会在查询之前将其移至。

答案 1 :(得分:1)

如果您使用的是Entity框架,那么您就是EDM.DateTime没有.Date属性。查看EDM.DateTime了解您可以使用的方法。

答案 2 :(得分:1)

您可能还会发现Entity Functions有用。这些允许您使用一些您无法使用的方法。

您需要添加:

  • 项目中的程序集引用 System.Data.Entity (in System.Data.Entity.dll)
  • 您正在使用函数的类中的Imports / using System.Data.Objects 语句