当我在 a 之后执行存储过程时,存储过程在完成SubmitChanges()
之前执行SubmitChanges()
。
该功能应该从另一台服务器迁移数据(因此有很多插入正在进行)。首先,我调用一个存储过程来禁用给定表上的触发器,然后执行插入操作,然后再次启用触发器。
代码如下所示:
dc.DisableTriggers(); //Stored procedure (works fine)
//... Procedure to insert all the data in the DataContext
dc.MyClass.InsertOnSubmit(myClass);
//...
dc.SubmitChanges(); //All the data is inserted into tables.
dc.EnableTriggers(); //Stored procedure (triggers are enabled before the end of all inserts)).
存储过程:
//DisableTriggers
Disable trigger [triggerName] on tableName; //Disabling on 5 tables
//EnableTriggers
Enable trigger [triggerName] on tableName; //same tables as DisableTriggers
如果我在重新启动之前放置一个断点SubmitChanges()
并等待一秒钟,那么一切正常。
如果我在 之后设置计时器SubmitChanges()
,则在所有插入结束之前启用触发器。
我做了一些测试,如果我绑定SubmitChanges()
一个按钮和dc.EnableTriggers()
另一个按钮,一切正常。
不幸的是,我需要它全部自动化。
我正在使用 C# .net 4.0。