2015-10-02 2 views
0

Я пытаюсь извлечь данные из своего 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(); 

ли я что-то пропустил, потому что у меня есть еще один запрос, но более простой, чем этот, и выборки данных из другой таблицы. Это тот же запрос, который используется в другом приложении, но без привязки и параметра, но он работает в этом старом приложении.

+0

Вы сделали пробный запуск вашего запроса непосредственно против вашей БД? Вы убедились, что используете тот же самый запрос с теми же входными значениями? – Amit

+1

Как насчет использования eContext.Database.Log, чтобы увидеть точный запрос и посмотреть, действительно ли это так и должно быть? – Evk

+0

Я попробую, когда я вернусь домой прямо сейчас в поезде – DarkVision

ответ

1

Вам не нужно ставить кавычки параметров:

SELECT iper FROM inqtimewahs WHERE iper LIKE '%' + @year AND iper >= @start AND iper <= @end 
+0

Я проверю, – DarkVision

Смежные вопросы