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

Обновлен: November 2007

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

Bb384575.alert_note(ru-ru,VS.90).gifПримечание.

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

Bb384575.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

Bb384575.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя 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 (исходное)) для команд Обновить и Удалить.

    Bb384575.alert_note(ru-ru,VS.90).gifПримечание.

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

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

    Bb384575.alert_note(ru-ru,VS.90).gifПримечание.

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

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

См. также

Задачи

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

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

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

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

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

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

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

LINQ to SQL