LINQ, вставка записи в перекрестный справочный стол, исправление не работает
Вопрос
У меня есть крестная справочная таблица рольпривилеж, который имеет FK к столам роли и привилегий .... в основном роль может иметь много привилегий.
Корпус на расположенMicrosoft Etfix.
уже был применен.
Вот мой код:
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
При выполнении последней строки я получаю следующую ошибку: целевая таблица «DBO.Roleprivilege» от оператора DML не может иметь никаких включенных триггеров, если оператор содержит пункт выхода без предложения.
Приложение является приложением Windows, с сервером SQL 2008 года с обновленным патчм, версия 9.0.4035
Любая помощь будет оценена.
Решение
Предположительно (так как вы не сказали)
- На столе есть триггер.
- Вы не можете удалить триггер.
Если вы изучите сгенерированный SQL (набор DataContext.Log
к Console.Out
), вы увидите выходное предложение. Целью данного пункта является аутосингингинские свойства в ваших случаях с генерируемыми значениями базы данных.
Что вам нужно сделать, это установить автосинхронизировать свойство на каждом столбце AutoSync.Never
. Отказ Вы можете сделать это через Linq для SQL Designer.