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由於此更改不會影響其任何數據,因此在我們的映射中我們沒有提及此審覈數據。