linq、クロスリファレンステーブルへの記録を挿入し、hotfixが機能していない
質問
私は、役割と特権のテーブルにFKを備えたクロスリファレンステーブルのroleprivilegeを持っています。基本的に役割には多くの特権があります。
にあるホットフィックス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」には、ステートメントが条項のない出力条項が含まれている場合、有効なトリガーを持つことができません。
このアプリはWindowsアプリで、2008年のSQL Serverが更新されたパッチ、バージョン9.0.4035を備えています
どんな助けも感謝します。
解決
おそらく(あなたが言っていなかったので)
- テーブルにトリガーがあります。
- トリガーを削除することはできません。
生成されたSQL(セット)を調べた場合 DataContext.Log
に Console.Out
)、出力条項が表示されます。この条項の目的は、データベース生成値を使用してインスタンスでプロパティを自動的にプロパティすることです。
あなたがする必要があるのは、各列のAutoSyncプロパティをに設定することです。 AutoSync.Never
. 。これを介してLINQからSQLデザイナーを介して行うことができます。
所属していません StackOverflow