Entity Framework 核心 ExecuteSqlInterpolated 给出 Microsoft.Data.SqlClient.SqlException

Entity Framework Core ExecuteSqlInterpolated gives Microsoft.Data.SqlClient.SqlException

我正在遍历一堆 table 并且必须删除其中每个具有特定列名的记录。我能够获得该列表,但以下行给了我例外:Microsoft.Data.SqlClient.SqlException (0x80131904): Must declare the table variable "@p0".

foreach (var dsw in deleteSwModels)
{
    contextCtx.Database.ExecuteSqlInterpolated($"DELETE FROM {dsw.Name} WHERE DeleteSw = 1");
}

属性 名称看起来像 Person.Address,其中 Person 是放置 table 的架构名称。

Entity Framework核心版本是3.1.8

我在 Github ef core.

的源代码中进一步挖掘异常细节

我使用以下语句解决了这个问题:

contextCtx.Database.ExecuteSqlRaw($"DELETE FROM {dsw.Name} WHERE DeleteSw = 1");

我希望它对以后的其他人有所帮助。