2012-10-01 27 views
1

任何人都可以告訴我什麼可能是錯誤的日期比較在這裏?Lightswitch查詢中的DataServiceOperationException

無財產「日期」 60位「reffering到s.SwipeDateTime.Value.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(); 

回答

1

在類型「Edm.DateTime」存在很簡單,LINQ提供您正在使用可能沒有按支持Convert.ToDateTime。無論如何,s.SwipeDateTime的類型是什麼?如果它已經DateTime,你不應該首先轉換 - 如果它是而不是DateTime,它可能應該是。請注意,您可以使用DateTime.Today而不是DateTime.Now.Date,並且親自將其移至查詢之前。

+0

要在查詢之前嗎? – cmaduro

+0

@cmaduro:是的,作爲一個局部變量。然後表達式'DateTime.Today'不需要翻譯。 –

1

如果您使用實體框架,那麼您是正確的EDM.DateTime沒有.Date屬性。請查看EDM.DateTime瞭解您可以使用哪些方法。

1

您可能還會發現Entity Functions有用。這些允許你使用一些你無法使用的方法。

你需要添加:

  • 在項目中的組件參考
  • 的進口/使用System.Data.Entity的(在 System.Data.Entity.dll) System.Data.Objects您正在使用函數的類中的語句
相關問題