当有触发器时,LINQ to SQL无法更新

时间:2011-04-04 09:13:40

标签: linq-to-sql

我有一个使用LINQ to SQL来更新某些表的程序,这是一个非常简单的更新,我只是将“Active”connlon设置为1.

else if (obj.Active == 0)
{
   Debug("Found user, but inactive setting to active.");
   obj.Active = 1;

我也有一些删除和插入逻辑,但那里没有问题。 问题是SubmitChanges()抛出异常sayint

  

20次更新失败

没有其他信息。 现在虽然有些调试我发现当我的数据库触发器处于活动状态时,我每次都会收到此错误,但是当它被禁用时,它一切运行正常。

这是触发器。

USE [CbsMatrikel]
GO
/****** Object:  Trigger [dbo].[LastUpdated]    Script Date: 04/04/2011 10:28:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      JEFE
-- Create date: 19-04-2010
-- Description: FullTextSearch field
-- =============================================
ALTER TRIGGER [dbo].[LastUpdated] ON [dbo].[account] 
FOR INSERT, UPDATE
AS

set nocount on

update account 
set lastupdated=getdate(),
FullTextSearch = firstname + ' ' + lastname + ' ' + official_email_address + ' ' + UserName + ' ' + cast(matrikel_id as varchar)
where matrikel_id in (select matrikel_id from inserted)

我认为问题在于它测试数据并且FullTextSearch字段已经发生变化,因此它认为存在某种错误,但我不确定。 有任何1经验此问题或知道如何解决这个问题? 我无法改变数据库或触发器,因为它是更大系统的一部分。

0 个答案:

没有答案