如何使用Entity Framework在Oracle的单个SQL查询中删除多行?
"DELETE FROM WOTRANSITION WHERE woiddisplay = @id OR woid = @id"
Context.Database.ExecuteSqlCommand(
"DELETE FROM WOTRANSITION WHERE woiddisplay = @id OR woid = @id",
new[] { new SqlParameter("@id", id) });
上面的示例代码错误,将返回错误:
无法将类型为“System.Data.SqlClient.SqlParameter”的对象强制转换为“Oracle.ManagedDataAccess.Client.OracleParameter
”
答案 0 :(得分:1)
您尝试连接到Oracle,但是您正在使用SqlParameter
。
改为使用OracleParameter
:
Context.Database.ExecuteSqlCommand(
"DELETE FROM DPCMWOTRANSITION WHERE woiddisplay = :id OR woid = :id",
new[] { new OracleParameter("id", id) });
我也做了一些其他更改,因为我不认为参数名称是完全正确的。
答案 1 :(得分:0)
我自己找到了解决方案。这是答案:
string query = string.Format("DELETE FROM WOTRANSITION WHERE woiddisplay = {0} OR woid = {0}", id);
Context.Database.ExecuteSqlCommand(query);
Context.SaveChanges();
有关详细信息,请Solution