Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF 6 delete失败,因为Insert语句的select列表包含的项目多于Insert列表_C#_Sql_Entity Framework - Fatal编程技术网

C# EF 6 delete失败,因为Insert语句的select列表包含的项目多于Insert列表

C# EF 6 delete失败,因为Insert语句的select列表包含的项目多于Insert列表,c#,sql,entity-framework,C#,Sql,Entity Framework,我的EF删除失败与上述声明。表(Product)有一个主键(ProductID)。运行SQL跟踪生成了导致故障的以下SQL: exec sp_executesql N'DELETE [dbo].[Product] WHERE ([ProductID] = @0)',N'@0 int',@0=620895 完整错误声明: Msg 121,15级,状态1,程序t_del_产品,第8行,选择 INSERT语句的列表包含的项多于INSERT语句的项 列表SELECT值的数量必须与INSERT的数量匹配

我的EF删除失败与上述声明。表(Product)有一个主键(ProductID)。运行SQL跟踪生成了导致故障的以下SQL:

exec sp_executesql N'DELETE [dbo].[Product] WHERE ([ProductID] = @0)',N'@0 int',@0=620895
完整错误声明:

Msg 121,15级,状态1,程序t_del_产品,第8行,选择 INSERT语句的列表包含的项多于INSERT语句的项 列表SELECT值的数量必须与INSERT的数量匹配 列

其他类似的删除工作刚刚好。我的EDMX已根据数据源(SQL Server 2012)完全更新

有什么想法吗?任何人任何人 谢谢

更新:我应该早点尝试,但即使是简单的: 从ProductID=620895的产品中删除
因此,这不是我在评论中提到的EF.


dbo.Product
上发生删除时,似乎正在调用sp(可能),并产生错误。看看表上是否定义了触发器


如果调用此SP的表上确实存在触发器,那么这可能是您的问题,您应该考虑修复SP。

您是否可以发布执行删除的代码/LINQ,感谢调用
t\u del\u Product
的表上是否存在触发器?@Ric。多谢。我(错误地)假设t_del_产品是由EF生成的。看到您的评论后,我开始查找:Select*From Sys.Objects,其中Name='t_del_Product'。就像我应该先找到它一样。伙计,我讨厌触发器吗:)在
dbo.Product
上发生删除时,似乎正在调用sp(可能),并产生了您的错误。看看表上是否定义了触发器。我对stackoverflow不太熟悉。我如何将您的答案标记为正确?这也是我的第一个想法。对我来说,这是一个没有新创建列的审计表。我将该列添加到触发器和审核表中,这一切都起到了作用。我碰巧在历史记录表中插入了一个触发器,而在历史记录表中没有新创建的列触发器可能很有用,但大多数情况下,它们是邪恶的