具有多个不同类型参数的 Dapper 更新查询
Dapper update query with multiple parameters of different type
我刚开始使用 Dapper,我有以下代码可以根据参数组合(列表和局部变量)生成查询
var sqlQuery = $"UPDATE MyItem SET ItemOrder = @ItemOrder WHERE Id = @Id AND TenantId = @TenantId;";
var parameters = new DynamicParameters();
parameters.Add("@ItemOrder", myItems.Select(x=> x.ItemOrder));
parameters.Add("@Id", myItems.Select(x => x.Id));
parameters.Add("@TenantId", SessionInfo.TenantId);
await dbConnection.ExecuteAsync(sqlQuery, parameters, transaction: transaction);
我可以在 SQL Server Profiler 中看到执行的以下查询
exec sp_executesql N'UPDATE MyItem SET ItemOrder = (@ItemOrder1,@ItemOrder2,@ItemOrder3) WHERE Id = (@Id1,@Id2,@Id3) AND TenantId = @TenantId;',
N'@ItemOrder1 int,@ItemOrder2 int,@ItemOrder3 int,@Id1 bigint,@Id2 bigint,@Id3 bigint,@TenantId bigint',
@ItemOrder1=1,@ItemOrder2=2,@ItemOrder3=3,@Id1=1,@Id2=2,@Id3=5,@TenantId=1
哪个returnsIncorrect syntax near ','
为什么我会收到此错误。我做错了什么?
尝试如下:
foreach(var item in myItems)
{
var sqlQuery = $"UPDATE MyItem SET ItemOrder = @ItemOrder WHERE Id = @Id AND TenantId = @TenantId;";
var parameters = new DynamicParameters();
parameters.Add("@ItemOrder", item.ItemOrder);
parameters.Add("@Id", item.Id);
parameters.Add("@TenantId", SessionInfo.TenantId);
await dbConnection.ExecuteAsync(sqlQuery, parameters, transaction: transaction);
}
我刚开始使用 Dapper,我有以下代码可以根据参数组合(列表和局部变量)生成查询
var sqlQuery = $"UPDATE MyItem SET ItemOrder = @ItemOrder WHERE Id = @Id AND TenantId = @TenantId;";
var parameters = new DynamicParameters();
parameters.Add("@ItemOrder", myItems.Select(x=> x.ItemOrder));
parameters.Add("@Id", myItems.Select(x => x.Id));
parameters.Add("@TenantId", SessionInfo.TenantId);
await dbConnection.ExecuteAsync(sqlQuery, parameters, transaction: transaction);
我可以在 SQL Server Profiler 中看到执行的以下查询
exec sp_executesql N'UPDATE MyItem SET ItemOrder = (@ItemOrder1,@ItemOrder2,@ItemOrder3) WHERE Id = (@Id1,@Id2,@Id3) AND TenantId = @TenantId;',
N'@ItemOrder1 int,@ItemOrder2 int,@ItemOrder3 int,@Id1 bigint,@Id2 bigint,@Id3 bigint,@TenantId bigint',
@ItemOrder1=1,@ItemOrder2=2,@ItemOrder3=3,@Id1=1,@Id2=2,@Id3=5,@TenantId=1
哪个returnsIncorrect syntax near ','
为什么我会收到此错误。我做错了什么?
尝试如下:
foreach(var item in myItems)
{
var sqlQuery = $"UPDATE MyItem SET ItemOrder = @ItemOrder WHERE Id = @Id AND TenantId = @TenantId;";
var parameters = new DynamicParameters();
parameters.Add("@ItemOrder", item.ItemOrder);
parameters.Add("@Id", item.Id);
parameters.Add("@TenantId", SessionInfo.TenantId);
await dbConnection.ExecuteAsync(sqlQuery, parameters, transaction: transaction);
}