2014-02-26 51 views
2

我嘗試從過去7天中使用c#中的實體框架獲取我的mssql表的條目。實體框架DateTime.Now - 7天C#

對於我嘗試:

var query = context.tbl.Where(fld => fld.date >= (DateTime.Now.AddDays(-7))); 

這並不在所有的工作。 我認爲如果記錄的日期大於或等於date.now - 7天,它應該讓我回到過去7天的所有參賽作品。

+0

「並不在所有的工作」是沒有太大的症狀描述。 –

+0

「fld.date」是什麼類型的sql? –

+0

我認爲錯誤信息是: 在mscorlib.dll中發生類型爲「System.NotSupportedException」的異常。 但不知道這是否是正確的錯誤信息。 mssql中的sql類型是datetime –

回答

2

DateTime.AddDays()無法通過實體框架轉換爲商店表達式。我假設這是你的意思,當你說它不起作用?

試試這個:

var dateTime = DateTime.Now.AddDays(-7); 
var query = context.tbl.Where(fld => fld.date >= dateTime); 
+0

這對我非常感謝! –

+0

您也可以使用Entity自己的'System.Data.Entity.DbFunctions'庫,它將常用函數映射到它們的原生SQL等價物。它具有'AddDays'功能等等。 https://msdn.microsoft.com/en-us/library/system.data.entity.dbfunctions.aspx –