Как сопоставить функции изменения с хранимыми процедурами
В этом разделе описывается, как использовать конструктор моделей EDM ADO.NET (конструктор сущностей), чтобы сопоставить операции типа сущности (вставка, обновление и удаление) с хранимыми процедурами.
Платформа Entity Framework создает класс, производный от ObjectContext, который представляет контейнер сущностей, определенный в концептуальной модели. (Имя производного класса — это имя контейнера EntityContainer в файле концептуальной модели.) Этот класс реализует метод SaveChanges, который активизирует обновления в основной базе данных. В этих обновлениях могут использоваться инструкции SQL, которые автоматически создаются системой (по умолчанию); могут также использоваться хранимые процедуры, указанные разработчиком. Код приложения, используемый для создания, обновления и удаления сущностей, остается неизменным независимо от того, используются ли для обновления базы данных хранимые процедуры.
При сопоставлении операций типа сущности (вставка, обновление и удаление) с хранимыми процедурами нужно выполнить следующие действия.
Сопоставить все три операции с хранимыми процедурами.
Согласованно сопоставить ассоциации. Если хранимая процедура сопоставлена с ассоциацией для одной или более операции, оставшиеся операции также нужно сопоставить с ассоциацией.
Сопоставить связанные сущности, имеющие связь «один к одному» с хранимыми процедурами. Если сущность связана с другими сущностями связью «один ко многим» или «многие ко многим», то эти связанные сущности не нужно сопоставлять с хранимыми процедурами.
Сопоставление операции вставки с хранимой процедурой
Сопоставление операции вставки с хранимой процедурой
Дважды щелкните файл <имя_модели>.edmx в обозревателе решений.
Файл откроется в конструкторе сущностей.
Щелкните правой кнопкой мыши тип сущности, который нужно сопоставить с операцией вставки.
Выберите пункт Сопоставления хранимых процедур.
Откроется область Сопоставить с функциями сущности окна Сведения о сопоставлении.
Щелкните <Выбор функции вставки>.
Из раскрывающегося списка выберите хранимую процедуру, с которой должна быть сопоставлена операция вставки.
Окно заполняется сопоставлениями по умолчанию между свойствами сущности и параметрами хранимой процедуры.
Для каждого параметра хранимой процедуры измените сопоставление соответствующим образом, щелкнув соответствующее поле свойства и выбрав свойство из раскрывающегося списка.
Примечание. Все ключи сущностей должны иметь сопоставления. Если в хранимой процедуре используется инструкция INSERT, то ключ сущности обычно сопоставляется с первичным ключом, созданным при вставке новой строки. В следующих шагах описывается процесс сопоставления данных, возвращаемых хранимой процедурой свойствам сущностей.
Щелкните <Добавление привязки к результату>.
Поле становится изменяемым.
Введите имя параметра, содержащего данные, возвращаемые хранимой процедурой.
Щелкните поле свойства, соответствующее имени параметра.
Поле становится раскрывающимся списком свойств.
Выберите свойство, с которым нужно сопоставить возвращенные данные
Повторите шаги с 7 по 10 для каждого возвращаемого значения и несопоставленного свойства.
Операция вставки для выбранного типа сущности теперь сопоставлена с хранимой процедурой.
Сопоставление операции обновления с хранимой процедурой
Сопоставление операции обновления с хранимой процедурой
Дважды щелкните файл <имя_модели>.edmx в обозревателе решений.
Файл откроется в конструкторе сущностей.
Щелкните правой кнопкой мыши тип сущности, который нужно сопоставить с операцией обновления.
Выберите пункт Сопоставления хранимых процедур.
Откроется область Сопоставить с функциями сущности окна Сведения о сопоставлении.
Щелкните <Выбор функции обновления>.
Из раскрывающегося списка выберите хранимую процедуру, с которой должна быть сопоставлена операция обновления.
Окно заполняется сопоставлениями по умолчанию между свойствами сущности и параметрами хранимой процедуры.
Для каждого параметра хранимой процедуры измените сопоставление соответствующим образом, щелкнув соответствующее поле свойства и выбрав свойство из раскрывающегося списка.
Для каждого свойства можно при желании отметить флажок в столбце Использовать исходное значение.
Параметр Использовать исходное значение позволяет использовать управление параллелизмом. Если для свойства выбирается параметр Использовать исходное значение, то значение свойства, считанное из базы данных, будет передано указанному параметру хранимой процедуры. Обратите внимание, что и текущее, и исходное значения свойства можно передавать различным параметрам.
Примечание. При сопоставлении операции обновления можно сопоставлять данные, возвращаемые хранимой процедурой, свойствам сущностей. В следующих шагах описывается процесс сопоставления данных, возвращаемых хранимой процедурой свойствам сущностей.
Щелкните элемент <Добавление привязки к результату>.
Поле становится изменяемым.
Введите имя параметра, содержащего данные, возвращаемые хранимой процедурой.
Щелкните поле свойства, соответствующее имени параметра.
Из раскрывающегося списка выберите свойство, с которым должны быть сопоставлены возвращаемые данные.
В случае необходимости повторите шаги с 8 по 11 для каждого возвращаемого значения.
После этого операция обновления для выбранного типа сущности становится сопоставленной с хранимой процедурой.
Сопоставление операции удаления с хранимой процедурой
Сопоставление операции удаления с хранимой процедурой
Дважды щелкните файл <имя_модели>.edmx в обозревателе решений.
Файл откроется в конструкторе сущностей.
Щелкните правой кнопкой мыши тип сущности, который нужно сопоставить с операцией удаления.
Выберите пункт Сопоставления хранимых процедур.
Откроется область Сопоставить с функциями сущности окна Сведения о сопоставлении.
Щелкните <Выбор функции удаления>.
Из раскрывающегося списка выберите хранимую процедуру, с которой должна быть сопоставлена операция удаления.
Окно заполняется сопоставлениями по умолчанию между свойствами сущности и параметрами хранимой процедуры.
Для каждого параметра хранимой процедуры измените сопоставление соответствующим образом, щелкнув соответствующее поле свойства и выбрав свойство из раскрывающегося списка.
Примечание. Необходимо сопоставить ассоциации с параметрами хранимой процедуры. Ассоциации доступны для выбора из раскрывающегося списка свойств.
См. также
Задачи
Пошаговое руководство: сопоставление сущности с хранимыми процедурами
Другие ресурсы
Поддержка хранимых процедур (платформа Entity Framework)
Код приложения для сопоставляемых хранимых процедур (платформа Entity Framework)