我有一个交叉引用表RolePrivilege,它具有FK到角色和权限表....基本上角色可以有很多权限。
位于的Hotfix Microsoft hotfix
已经应用。
这是我的代码:
Public Sub InsertRolePrivilege(ByVal inrole As Role, ByVal inprivilege As Privilege)
Dim r As Role = (From ro In DataConnect.dcGSFCommon.Roles Where ro.RoleId = inrole.RoleId).First
Dim rolep As New RolePrivilege
rolep.PrivilegeId = inprivilege.PrivilegeId
rolep.CreatedBy = System.Threading.Thread.CurrentPrincipal.Identity.Name
rolep.DateCreated = System.DateTime.Now()
rolep.RolePrivilegeId = System.Guid.NewGuid()
r.RolePrivileges.Add(rolep)
DataConnect.dcGSFCommon.SubmitChanges()
End Sub
执行最后一行时,出现以下错误: 如果语句包含没有INTO子句的OUTPUT子句,则DML语句的目标表'dbo.RolePrivilege'不能具有任何已启用的触发器。
该应用程序是一个Windows应用程序,其中2008 SQL服务器具有更新的修补程序,版本9.0.4035
任何帮助都将不胜感激。
答案 0 :(得分:1)
据推测(因为你没说)
如果检查生成的sql(将DataContext.Log
设置为Console.Out
),您将看到一个输出子句。此子句的目的是使用数据库生成的值在实例上自动同步属性。
您需要做的是将每列的AutoSync属性设置为AutoSync.Never
。你可以通过linq to sql designer来做到这一点。