如何最小化来自C#helper类的sql db连接命令的使用语句

时间:2016-08-23 14:38:08

标签: c# dapper

目前,每次在c#helper页面中有一个简单的select语句时,我都会继续编写以下代码。

using (var ctx = new MyDBContext())
    {
        using (var cmd = (SqlCommand)ctx.Database.Connection.CreateCommand())

我想出了一种更简洁的方法来编写此更新,但无法使用select。 以下是我为更新所做的事情:

using (var ctx = new MyDBContext())
  {
   await ctx.Database.ExecuteSqlCommandAsync(@"UPDATE PO SET ESD = @ESD WHERE PoNumber = @PoNumber",new SqlParameter("ESD", (object)ESD ?? DBNull.Value), new SqlParameter("PoNumber", PoNumber));}
   }

这就是我正在尝试Select,但它不起作用

using (var ctx = new MyDBContext())
        {
            string sqlQuery ="SELECT * FROM POStages WHERE PoNumber = @PoNumber";
           poStages =  await ctx.Database.SqlQuery((sqlQuery
                ,new SqlParameter("PoNumber", PoNumber)).ToListAsync(); 
        }

1 个答案:

答案 0 :(得分:3)

SqlParameter应该是@PoNumber。

这是正确的语法,两者都有效

await ctx.Database.SqlQuery(
    typeof(DAL.Models.POStages),
    sqlQuery, 
    new SqlParameter("@PoNumber", PoNumber)).ToListAsync();

await ctx.Database.SqlQuery<DAL.Models.POStages>(            
        sqlQuery, 
        new SqlParameter("@PoNumber", PoNumber)).ToListAsync();