Я пытаюсь извлечь данные из своего db и связать их с моим внутренним объектом класса, но все поля имеют нулевое значение, оно должно иметь некоторые данные.EF 6 Raw SQL Queries null value
здесь мой внутренний класс
internal class Query1
{
public decimal? workedhours {get;set;}
public decimal? woff { get; set; }
public decimal? abilact { get; set; }
public decimal? abilori { get; set; }
public decimal? rratio { get; set; }
public decimal? frec { get; set; }
}
Вот мой запрос
var ttk = new SqlParameter("@ttk", element.tkinit);
var year = new SqlParameter("@year",start.Substring(1,3));
var ed = new SqlParameter("@end",end);
var st = new SqlParameter("@start",start);
string sqlQuery = @"SELECT
SUM(inq.thhrwkdw) workedhours,
SUM(inq.thcrdc) woff,
SUM(inq.thdobidb) abilact,
SUM(inq.thdowkdb) abilori,
((SUM(inq.thdobidb)-SUM(inq.thdowkdb))/(SUM(inq.thdowkdb)+1) * 100) + 100 rratio,
SUM(inq.thdocodc) frec
FROM dbo.inqtimewahs inq
INNER JOIN dbo.timekeep tk ON tk.tkinit = inq.ivalue
WHERE inq.ivalue = '@ttk'AND inq.iper IN
(SELECT iper FROM inqtimewahs WHERE iper LIKE '%@year' AND iper >= '@start' AND iper <= '@end') AND tk.tktmdate IS NULL";
resultQ1 = eContext.Database.SqlQuery<Query1>(sqlQuery, ttk, year, st, ed).SingleOrDefault();
ли я что-то пропустил, потому что у меня есть еще один запрос, но более простой, чем этот, и выборки данных из другой таблицы. Это тот же запрос, который используется в другом приложении, но без привязки и параметра, но он работает в этом старом приложении.
Вы сделали пробный запуск вашего запроса непосредственно против вашей БД? Вы убедились, что используете тот же самый запрос с теми же входными значениями? – Amit
Как насчет использования eContext.Database.Log, чтобы увидеть точный запрос и посмотреть, действительно ли это так и должно быть? – Evk
Я попробую, когда я вернусь домой прямо сейчас в поезде – DarkVision