0
我在我的sql数据库上使用触发器来捕获表的变化信息,但它似乎与nhibernate有问题。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 是由用户代码未处理
消息=行被 另一个事务更新或删除(或者未保存值 映射是不正确的)
我假定这是因为触发器在另一个数据库更新另一个表中,有反正使其成为nhibernate由于此更改不会影响其任何数据,因此在我们的映射中我们没有提及此审核数据。