LINQ, вставка записи в перекрестный справочный стол, исправление не работает

StackOverflow https://stackoverflow.com/questions/3936593

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть крестная справочная таблица рольпривилеж, который имеет 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

Любая помощь будет оценена.

Это было полезно?

Решение

Предположительно (так как вы не сказали)

  1. На столе есть триггер.
  2. Вы не можете удалить триггер.

Если вы изучите сгенерированный SQL (набор DataContext.Log к Console.Out ), вы увидите выходное предложение. Целью данного пункта является аутосингингинские свойства в ваших случаях с генерируемыми значениями базы данных.

Что вам нужно сделать, это установить автосинхронизировать свойство на каждом столбце AutoSync.Never. Отказ Вы можете сделать это через Linq для SQL Designer.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top