EF 6 Raw SQL查询空值

时间:2015-10-02 21:34:08

标签: sql-server asp.net-mvc entity-framework

我尝试从我的数据库中获取数据并将其绑定到我的内部类对象,但是所有字段都为null,它应该有一些数据。

这里是我的内部课程

    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();

我是否遗漏了一些东西,因为我有另一个查询,但比这个更简单,它从其他表中获取数据。 它是在另一个应用程序中使用的相同查询但没有所有绑定和参数但它在旧的应用程序中工作。

1 个答案:

答案 0 :(得分:1)

您不需要在参数旁边添加引号:

SELECT iper FROM inqtimewahs WHERE iper LIKE '%' + @year AND iper >= @start AND iper <= @end
相关问题