我的EF删除失败,并带有上述声明。表(Product)具有单个主键(ProductID)。运行SQL Trace会产生以下导致失败的SQL:
exec sp_executesql N'DELETE [dbo].[Product] WHERE ([ProductID] = @0)',N'@0 int',@0=620895
完整错误陈述:
消息121,级别15,状态1,过程t_del_Product,第8行选择 INSERT语句的列表包含的项目多于插入 名单。 SELECT值的数量必须与INSERT的数量相匹配 列。
其他类似删除工作正常。我的EDMX针对DataSource(SQL Server 2012)进行了全面更新
有什么想法吗?任何人?任何人? 谢谢!
更新:我本来应该尝试过这个,但即使是简单的我也会得到同样的错误: DELETE FROM Product其中ProductID = 620895 所以,它不是EF。
答案 0 :(得分:2)
正如我的评论所述:
当dbo.Product
上发生删除并且产生错误时,看起来(可能)正在调用sp。只需查看表格,看看是否有定义的触发器。
如果确实在呼叫此SP的桌子上有触发器,那么这可能是您的问题,您应该考虑修复SP。