我正在使用C#,實體框架和SQL Server 2008 R2創建WPF應用程序。我試圖解僱以下查詢。實體框架數據庫查詢結果爲NULL值
Select Convert(nvarchar(10),bk.BookingDate,103) as Date, Count(*)
from Booking bk
where
Convert(date,bk.BookingDate) between '2014-10-01' and '2014-10-31'
and bk.IsDeleted = 0
group by Convert(nvarchar(10),bk.BookingDate,103)
order by 1
如果直接在SQL Server提示符下觸發並獲取結果,則此查詢有效。 但是,當我嘗試使用實體框架我得到NULL
值。
var values = context.Database
.SqlQuery<KeyValuePair<string, int>>(query)
.ToList<KeyValuePair<string, int>>();
- 是不是因爲我是在方法調用中使用的鍵值對?
- 有沒有其他的做法使用實體框架?
- 或者我應該使用舊式數據庫連接和命令來運行這個 查詢?
爲什麼你使用BookingDate交替使用字符串和日期?如果將它作爲日期存儲在數據庫中,請選擇它並將其作爲日期進行比較 – Kritner 2014-10-27 16:27:51
只是在您不知道的情況下提示:EntityFramework最適合LinQ並且不能寫入純文本SQL查詢。 – TGlatzer 2014-10-27 16:29:23
@Kritner:在數據庫中的日期時間。我想按日期算。所以需要擦除時間部分 – 2014-10-27 16:30:28