C# “错误”;System.Data.Entity.Infrastructure.DbUpdateException“;ef6中启用触发器后
通过执行该命令,我可以毫无问题地删除表中的行C# “错误”;System.Data.Entity.Infrastructure.DbUpdateException“;ef6中启用触发器后,c#,entity-framework,triggers,C#,Entity Framework,Triggers,通过执行该命令,我可以毫无问题地删除表中的行 using (var context = new SamenEntities()) { var person = context.regs.Where(c => c.code == ID).FirstOrDefault(); if (person != null) { context.regs.Remove(person); context.SaveChanges(); c
using (var context = new SamenEntities())
{
var person = context.regs.Where(c => c.code == ID).FirstOrDefault();
if (person != null)
{
context.regs.Remove(person);
context.SaveChanges();
clearformsearch();
}
}
现在我想激活数据库中的以下触发器:
USE [Samen]
GO
/****** Object: Trigger [dbo].[delete_after_project] Script Date: 9/11/2018 12:46:09 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[delete_after_project]
ON [dbo].[reg]
AFTER Delete
AS
BEGIN
SET NOCOUNT ON;
DECLARE @C_ID AS int
SELECT @C_ID = code FROM deleted
DELETE FROM project
WHERE id_person = @C_ID
END
激活触发器后,我在SaveChange中收到以下错误:
System.Data.Entity.Infrastructure.DbUpdateException:“更新条目时出错。有关详细信息,请参见内部异常
细节。”
…那么什么是内部异常呢?@PaulAbbott,
SqlException:EXECUTE之后的事务计数表示BEGIN和COMMIT语句的数量不匹配。上一次计数=1,当前计数=0。
复制触发器时是否关闭了结束
,或者触发器是否确实丢失了?为什么没有级联删除?级联删除时+1。关于该错误,我怀疑触发器可能引发异常,导致EF事务无法成功完成。避免触发,并将DB&EF关系设置为在删除时级联。