最近我有一些linq-to-sql的問題。問題在於,當我們觸發附加事件時,它「認爲」插入和更新失敗。 一個示例可以是一行,其中觸發器被附加以將行更改時的「LastUpdated」冒號設置爲當前時間。這將導致linq-to-sql認爲更新或插入失敗,但這只是一些時候,因爲它有時會經過,我認爲這是當sql服務器負載很重,因此不能在進行驗證之前執行觸發器,這只是猜測。 由於我的腳本只是一個更大的腳本的一部分,因此禁用觸發器不是一種選擇,所以我需要找到解決方案或重寫我的程序。 有沒有人遇到過這個問題並找到了解決方案,例如在插入後禁用驗證?Linq-to-sql無法插入和更新時,這是一個觸發器連接
觸發器。
USE [cnhha]
GO
/****** Object: Trigger [dbo].[LastUpdated] Script Date: 05/12/2011 16:26:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[LastUpdated] ON [dbo].[CN_User]
FOR INSERT, UPDATE
AS
update cn_user set lastupdated=getdate() where campusnetuserid in (select campusnetuserid from inserted)
您可能必須在測試環境中禁用觸發器來驗證確實是問題所在。是否可以從LINQ2SQL語句中刪除觸發器更改的字段,以便它不嘗試驗證? – n8wrl 2011-05-06 13:30:11
什麼類型的觸發器。在更新之前或更新之後? – 2011-05-06 13:30:45
你可以添加觸發器看起來像什麼嗎? – DForck42 2011-05-11 15:36:23