назначение хранимых процедур для выполнения обновлений, вставок и удалений (реляционный конструктор объектов)
Сохраненные процедуры можно добавлять в реляционный конструктор объектов и выполнять как обычные методы DataContext. Их также можно использовать для переопределения поведения по умолчанию LINQ to SQL во время выполнения, которое выполняет вставки, Обновления и удаление при сохранении изменений из классов сущностей в базу данных (например, при вызове SubmitChanges метода).
Примечание.
Если хранимые процедуры возвращают значения, которые должны отправляться обратно на клиент (например, значения, вычисляемые в хранимой процедуре), создайте в хранимых процедурах выходные параметры. Если использовать выходные параметры невозможно, то вместо применения переопределений, созданных реляционным конструктором объектов, реализуйте разделяемый метод. Элементы, сопоставленные с созданными базой данных значения, должны быть заданы соответствующими значениями после успешного завершения или UPDATE
операцийINSERT
. Дополнительные сведения см. в разделе "Обязанности разработчика в переопределении поведения по умолчанию".
Примечание.
LINQ to SQL автоматически обрабатывает созданные базой данных значения для удостоверений (автоматического увеличения), rowguidcol (глобально уникальный идентификатор GUID) и столбцов метки времени. Генерируемые базой данных значения в других типах столбцов будут неожиданно давать нулевое значение. Чтобы вернуть созданные базой данных значения, необходимо вручную задать IsDbGenerated значение true и AutoSync одно из следующих значений: AutoSync.Always, AutoSync.OnInsert или AutoSync.OnUpdate.
Настройка поведения обновления класса сущностей
По умолчанию логика обновления базы данных (вставки, обновления и удаления) с изменениями, внесенными в данные в классах сущностей LINQ to SQL, предоставляется средой выполнения LINQ to SQL. Среда выполнения создает команды по умолчанию INSERT
UPDATE
и DELETE
команды, основанные на схеме таблицы (сведения о столбце и первичном ключе). Если поведение по умолчанию не требуется, можно настроить поведение обновления, назначив определенные хранимые процедуры для выполнения необходимых вставок, обновлений и удалений, необходимых для управления данными в таблице. Можно также сделать это, когда поведение по умолчанию не сгенерировано, например, когда ваши классы сущностей сопоставляются с представлениями. Наконец, можно отменить поведение обновления по умолчанию, когда база данных требует доступа к таблице через сохраненные процедуры.
Примечание.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Возможно, вы используете другой выпуск Visual Studio или разные параметры среды. Дополнительные сведения см. в разделе Персонализация среды IDE.
Чтобы назначить сохраненные процедуры для переопределения заданного по умолчанию поведения класса сущностей
Откройте файл LINQ to SQL в конструкторе. (Дважды щелкните
.dbml
файл в Обозреватель решений.)В Обозревателе серверов или Обозревателе базы данных разверните узел Сохраненные процедуры и найдите сохраненные процедуры, которые вы хотите использовать для команд "Вставить", "Обновить" и (или) "Удалить" из класса сущностей.
Перетащите сохраненную процедуру на реляционный конструктор объектов.
Сохраненная процедура добавляется в область методов как метод DataContext. Дополнительные сведения см. в статье DataContext Methods (O/R Designer).
Выберите класс сущностей, для которого вы хотите использовать сохраненную процедуру для выполнения обновлений.
В окне Свойства выберите команду для переопределения (Вставить, Обновить или Удалить).
Нажмите кнопку с многоточием (...) рядом с полем Использовать среду выполнения, чтобы открыть диалоговое окно Настройка поведения.
Выберите Настроить.
Выберите нужную сохраненную процедуру в списке Настроить.
Проверьте список Аргументы метода и Свойства класса, чтобы убедиться, что Аргументы метода сопоставляются соответствующим Свойствам класса. Сопоставить аргументы исходного метода (
Original_<ArgumentName>
) с исходными свойствами (<PropertyName> (Original)
) дляUpdate
команд иDelete
команд.Примечание.
По умолчанию аргументы метода сопоставляются со свойствами класса, если их имена совпадают. Если имена свойств были изменены и больше не совпадают в таблице и в классе сущностей, то может потребоваться выбор эквивалентного свойства класса для сопоставления, если конструктор не сможет определить правильное сопоставление.
Нажмите кнопку OK или кнопку Применить.
Примечание.
Вы можете продолжать настраивать поведение для каждого класса и сочетания поведения до тех пор, пока вы нажимаете кнопку "Применить " после внесения каждого изменения. Если вы измените класс или поведение перед нажатием кнопки "Применить", появится диалоговое окно предупреждения и предоставляет возможность применить изменения.
Чтобы возвратиться к использованию заданной по умолчанию логики среды выполнения для обновлений, нажмите кнопку с многоточием рядом с командами Вставить, Обновить или Удалить в окне Свойства и потом выберите Использовать среду выполнения в диалоговом окне Настройка поведения.