有没有一种方法可以用带有动态列名的FormattableString编写原始SQL?
FormattableString query = @$"UPDATE table1 SET {dynamicColumnName} = {dynamicColumnName} + 1";这里的问题是它不起作用,我在
Database.ExecuteSqlInterpolatedAsync(query);我认为EF核心以一种将插值视为参数的方式对待FormattableString,导致每个{dynamicColumnName}的@p0,@p1。
有没有办法解决这个问题?
发布于 2021-11-03 12:48:12
ExecuteSqlInterpolatedAsync旨在通过插值传递参数,而不是列名。因此,这种情况下的简单解决方案不是使用ExecuteSqlInterpolatedAsync。
string query = @$"UPDATE table1 SET {dynamicColumnName} = {dynamicColumnName} + 1";
Database.ExecuteSqlRawAsync(query);这会导致在执行查询之前将列名插入到字符串中,因此不会将其用作参数。
https://stackoverflow.com/questions/69093286
复制相似问题