我有一个交叉引用表RolePrivilege,其中有FK to Role和Privileges tables....basically Role可以有很多特权。
位于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在执行最后一行时,我得到以下错误:如果DML语句的目标表'dbo.RolePrivilege‘包含没有INTO子句的OUTPUT子句,则该语句不能有任何已启用的触发器。
该应用程序是windows应用程序,带有更新补丁程序的2008 SQL server,版本9.0.4035
任何帮助都将不胜感激。
发布于 2010-10-15 23:02:36
大概(因为你没说)
如果检查生成的sql (将DataContext.Log设置为Console.Out ),您将看到一个output子句。此子句的目的是将实例上的属性与数据库生成的值自动同步。
您需要做的是将每列的AutoSync属性设置为AutoSync.Never。您可以通过linq to sql设计器执行此操作。
https://stackoverflow.com/questions/3936593
复制相似问题