2016-08-25 60 views
0

我正在使用實體從客戶的SQL表中抽取一些數據,並且想根據日期對其進行過濾。客戶將每行的相關月份存儲爲YYYYMM格式的6位字符串。我試圖解決這個(因爲我不能列類型更改爲DATETIME2)已創建一個SQL視圖,做以下操作以創建代表當月DATETIME2列:實體將所有日期時間轉換爲Jan 1

CONVERT(datetime2, MON.Month + '01') AS CoveredMonth 

然後裏面。 NET,我有兩個DateTime對象,yearStart和yearEnd,代表2016年1月1日和2017年1月1日,以及我正在查找的特定員工的記錄。我有以下代碼嘗試在此列過濾:

IList<MonthlyRecord> monthlyRecords = m_LTContext.MonthlyRecords 
    .Where(r => r.EmployeeID == employee.ID && r.CoveredMonth >= yearStart && r.CoveredMonth < yearEnd) 
    .ToList<MonthlyRecord>(); 

當我把一個破發點檢查什麼返回到monthlyRecords我看到記錄的預期計數。但是,每個記錄的CoveredMonth設置爲2016年1月1日。在SQL中運行相同的查詢我再次獲得相同的記數的記錄,但是適當的日期爲:2016年1月1日,16年2月1日等

實體有沒有問題映射在視圖上的非標準的屬性?我腦海中有一些黑客,但我真的很想解決這個「適當」。

回答

0

想出來 - 該視圖使用EmployeeID作爲主鍵而不是MonthlyRecordID。

相關問題