我正在創建一個WPF C#應用程序,允許您添加,刪除和編輯汽車租賃訂單,我試圖實現一項功能,只從數據庫中選擇完成的記錄,或選擇仍處於活動狀態的記錄。如何僅顯示SystemDate小於/大於存儲日期的數據庫記錄?
這是我excample ShowCompleted方法....
DateTime current = DateTime.Now;
var query = from CarRental in this.dbContext.CarRentals where (CarRental.Starting_Date.AddDays(CarRental.Duration)) < current select CarRental;
this.CarRentalViewSource.Source = query.ToList();
這是錯誤當我點擊該按鈕,我得到了,我不知道解決的辦法是什麼?
An unhandled exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll
Additional information: LINQ to Entities does not recognize the method 'System.DateTime AddDays(Double)' method, and this method cannot be translated into a store expression.
任何幫助,將不勝感激
感謝
傑米·
你是不是比較與存儲的日期,你* *計算使用C#方法,'AddDays'它。這不能轉換爲SQL。這就是消息所說的 –
另一個問題是,通過*計算*日期,即使您在SQL中這樣做,您也可以防止服務器使用涵蓋'Starting_Date'的任何索引。這將強制進行全表掃描。創建一個實際的或持久化的calcualted字段'Ending_Date'並將其添加到索引。 –