如何创建具有许多查询的T-SQL并正确使用参数?

时间:2019-06-11 17:17:13

标签: sql sql-server ef-core-2.0

我正在使用EF Core,我想使用ExecuteSqlCommandAsync发送4个删除查询。

我正在尝试:

List<object> myParameters = new List<object>() {3,4};
string myTsql = "delete MyTable where ID = {0}";
myTsql = myTsql + "; delete MyTabl01 where ID = {1}";

await myDbContext.DataBase.ExecuteSqlCommandAsync(myTsql, myParameters);

问题在于,当我连接第二个字符串以添加新查询时,EF Core会检测到我没有参数化该查询。我必须使用一次创建的字符串。

无论如何,它真的不是参数化查询吗?我正在使用参数创建每个查询,并且未分配任何其他变量,因此我不确定是否可以进行SQL注入。

我的问题:是否可以对作为两个或多个字符串的并集创建的查询进行参数化?

如果没有,另一种方法是将每个查询发送到数据库,但是我对数据库进行了删除。

另一种选择是使用POCO实体,但是对于删除,我更喜欢使用T-SQL,因为如果没有,我必须处理异常,如果没有受影响的行,因为另一个进程删除了某些行。

谢谢

0 个答案:

没有答案