我正在使用select SUBSTR(column_name, 1, 300) || ',' || SUBSTR(column_name, 301) from table_name ;
实体框架核心来删除表的所有行。
但是,我收到错误ExecuteSqlCommand
这是我的代码:
System.Data.SqlClient.SqlException: 'Must declare the table variable "@p0".'
在这里被称为:
public static void ExecuteDeleteSQL(ShoppingCartDbContext context, string tableName)
{
context.Database.ExecuteSqlCommand($"Delete from {tableName}"); //This line throws the error
}
我正在使用带有EntityFrameworkCore的.NET Core 2
我安装了以下nuget包:
ExecuteDeleteSQL(context, "[dbo].[ShoppingCartItems]");
答案 0 :(得分:1)
好像你必须将至少一个参数传递给ExecuteSqlCommand
,即使我的查询没有使用任何参数。
令人讨厌的是它在编译期间没有抱怨。
//passing at least one parameter
context.Database.ExecuteSqlCommand($"Delete from {tableName}",tableName);
<强> 编辑: 强>
在GitHub中报告了一个类似的问题,目前正在考虑中: https://github.com/aspnet/EntityFrameworkCore/issues/10956