В Entity Framework Core я могу параметризовать SQL-запрос следующим образом:
_context.Database.ExecuteSqlCommandAsync($"select * from table where id = {myid}");
где строка запроса SQL является FormattableString
.
Мне нужно запустить обновление SQL для примерно 100 строк на ходу, и когда я использую Linq, это делает 100 обращений к базе данных, когда я мог бы легко сделать это, используя оператор SQL что-то вроде
UPDATE entity
SET column = CASE .....
за один звонок. Но я не уверен, как это сделать для связанных строк.
Например:
string sqlQuery = "UPDATE entity SET column = CASE "
for(int i = 0; i < 10; i++){
sqlQuery += "WHEN column2 = i THEN i + 1 ";
}
sqlQuery += "WHERE id IN (1,2,3,4,5,6,7,8,9,10)";
await _context.Database.ExecuteSqlCommandAsync(sqlQuery);
Как я могу санировать или параметризировать этот запрос? Любая помощь будет оценена!