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