Как назначить хранимые процедуры для выполнения обновлений, вставок и удалений (реляционный конструктор объектов)

Сохраненные процедуры можно добавлять в реляционный конструктор объектов и выполнять как обычные методы DataContext. Сохраненные процедуры могут также использоваться для отмены поведения по умолчанию среды выполнения LINQ to SQL, которая выполняет операции Вставки, Обновления Удаления, когда изменения сохраняются из классов сущностей в базу данных (например, при вызове метода SubmitChanges).

Примечание

Если хранимые процедуры возвращают значения, которые должны отправляться обратно на клиент (например, значения, вычисляемые в хранимой процедуре), создайте в хранимых процедурах выходные параметры.Если использовать выходные параметры невозможно, то вместо применения переопределений, созданных реляционным конструктором объектов, реализуйте разделяемый метод.Элементы, сопоставляемые со значениями, созданными базой данных, должны получать соответствующие значения после успешного завершения операций INSERT или UPDATE.Дополнительные сведения см. в разделе Обязанности разработчика при переопределении поведения по умолчанию (LINQ to SQL).

Примечание

LINQ to SQL автоматически обрабатывает значения, генерируемые в базе данных, на принадлежность к столбцам ключей (автоприращение), rowguidcol (созданный базой данных уникальный идентификатор GUID) и столбцам меток времени.Генерируемые базой данных значения в других типах столбцов будут неожиданно давать нулевое значение.Для возврата генерируемых базой данных значений нужно вручную задать IsDbGenerated в true и AutoSync в одно из следующих: Always, OnInsert или OnUpdate.

Конфигурирование Поведения обновления Класса сущностей

По умолчанию, логика обновления базы данных (Вставки, Обновления и Удаления) с изменениями данных классов сущностей LINQ to SQL обеспечивается средой выполнения LINQ to SQL. Среда выполнения по умолчанию создает команды Вставить, Обновить и Удалить, основываясь на схеме таблицы (определения столбцов и информация о первичных ключах). Если нужно изменить режим работы по умолчанию, порядок обновления можно настроить, назначая определенные хранимые процедуры для выполнения операций вставки, обновления и удаления, необходимых для работы с данными в таблице. Назначить процедуры также можно, если режим работы по умолчанию не определен (например, когда классы сущностей сопоставляются с представлениями). Наконец, можно отменить поведение обновления по умолчанию, когда база данных требует доступа к таблице через сохраненные процедуры.

Примечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Чтобы назначить сохраненные процедуры для переопределения заданного по умолчанию поведения класса сущностей

  1. Откройте файл LINQ to SQL в конструкторе. (Дважды щелкните по DBML-файлу в Обозревателе решений.)

  2. В Обозревателе серверов/Обозревателе базы данных разверните узел Сохраненные процедуры и найдите сохраненные процедуры, которые вы хотите использовать для команд Вставить, Обновить и/или Удалить класса сущностей.

  3. Перетащите сохраненную процедуру на реляционный конструктор объектов.

    Сохраненная процедура добавляется в область методов как метод DataContext. Дополнительные сведения см. в разделе Методы DataContext (реляционный конструктор объектов).

  4. Выберите класс сущностей, для которого вы хотите использовать сохраненную процедуру для выполнения обновлений.

  5. В окне Свойства выберите команду для переопределения (Вставить, Обновить или Удалить).

  6. Нажмите кнопку с многоточием (...) рядом с полем Использовать среду выполнения, чтобы открыть диалоговое окно Настройка поведения.

  7. Выберите Customize.

  8. Выберите нужную сохраненную процедуру в списке Customize.

  9. Проверьте список Аргументы метода и Свойства класса, чтобы убедиться, что Аргументы метода сопоставляются соответствующим Свойствам класса. Сопоставьте аргументы исходного метода (Original_ArgumentName) исходным свойствам (PropertyName (исходное)) для команд Обновить и Удалить.

    Примечание

    По умолчанию аргументы метода сопоставляются со свойствами класса, если их имена совпадают.Если имена свойств были изменены и больше не совпадают в таблице и в классе сущностей, то может потребоваться выбор эквивалентного свойства класса для сопоставления, если конструктор не сможет определить правильное сопоставление.

  10. Нажмите кнопку OK или кнопку Применить.

    Примечание

    Можно продолжить настройку режима для каждого сочетания класса и режима при условии, что после каждого изменения будет производиться нажатие кнопки Применить.Если вы изменяете класс или поведения до нажатия кнопки Применить, то появляется предупреждающее диалоговое окно, предлагающее применить выполненные изменения.

    Чтобы возвратиться к использованию заданной по умолчанию логики среды выполнения для обновлений, нажмите кнопку с многоточием рядом с командами Вставить, Обновить или Удалить в окне Свойства и потом выберите Использовать среду выполнения в диалоговом окне Конфигурирование поведения.

См. также

Задачи

Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)

Пошаговое руководство. Создание хранимых процедур обновления данных для таблицы "Заказчики" базы данных "Борей"

Основные понятия

Методы DataContext (реляционный конструктор объектов)

Операции вставки, обновления и удаления (LINQ to SQL)

Другие ресурсы

Реляционный конструктор объектов

LINQ to SQL