【发布时间】:2019-03-09 05:05:59
【问题描述】:
在 Entity Framework Core 中,我可以像这样参数化 SQL 查询:
_context.Database.ExecuteSqlCommandAsync($"select * from table where id = {myid}");
其中 SQL 查询字符串是 FormattableString。
我需要一次运行大约 100 行的 SQL 更新,当我使用 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);
如何清理或参数化此查询?任何帮助将不胜感激!
【问题讨论】:
标签: c# sql asp.net-core entity-framework-core