Как создать T-SQL с большим количеством запросов и правильно использовать параметры? - PullRequest
0 голосов
/ 11 июня 2019

Я использую EF Core, и я хотел бы отправить 4 запроса на удаление, используя ExecuteSqlCommandAsync.

Я пытаюсь это:

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-инъекцию.

Мой вопрос: возможно ли параметризовать запрос, которыйa создан как объединение двух или более строк?

Если нет, другой альтернативный вариант - отправлять каждый запрос к базе данных, но затем я выполняю N операций копирования в базу данных.

Другой вариант это будетиспользовать объекты POCO, но для удаления я предпочитаю T-SQL, потому что в противном случае мне придется обрабатывать исключение, если не затронуты строки, потому что другой процесс удаляет некоторые строки.

Спасибо

...