休眠审核触发错误

| 我在sql数据库上使用触发器来捕获表的更改信息,但是nhibernate似乎有问题。 该表上有几列,主键和触发器。触发器看起来像这样
CREATE TRIGGER [dbo].[tr_Instrument_update] ON [dbo].[Instrument] FOR UPDATE AS
BEGIN
  INSERT [MyAudit].[audit].[Instrument]
  SELECT \'Updated\', i.*
    FROM inserted
   INNER JOIN [MyAudit].[dbo].[Instrument] i ON inserted.[InstrumentID] = i.[InstrumentID]
END
基本上,每次更改时,我们都会将该行复制到审核表中。我已经测试过,并且如果我直接通过sql management studio触发器功能正确地修改了数据,并且我将数据写入了审计表,但是,如果我通过我的应用程序进行更新,则会得到以下信息:   NHibernate.StaleObjectStateException   用户代码未处理   Message =行已由更新或删除   另一笔交易(或未保存的价值   映射不正确) 我认为这是因为触发器更新了另一个数据库中的另一个表,是否仍然会使nhibernate忽略此表,因为更改不会影响其任何数据,因此在映射中我们没有引用此审计数据。     
已邀请:
弄清楚该触发器由于某种原因导致Nhibernate进行两个相同的更新调用。解决的办法是在触发器内部设置NOCOUNT ON。仍然不确定为什么nhibernate进行两次更新!     

要回复问题请先登录注册