目前,每次在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();
}
答案 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();