Применение хранимых процедур в Entity Framework
Отправьте статью сегодня! Электронный вариант журнала выйдет 14 августа,печатный экземпляр отправим18 августа.

Применение хранимых процедур в Entity Framework

Поделиться в социальных сетях
371 просмотр
Библиографическое описание

Бакаев, И. И. Применение хранимых процедур в Entity Framework / И. И. Бакаев, Т. Р. Шафиев. — Текст : непосредственный // Молодой ученый. — 2017. — № 11 (145). — С. 36-38. — URL: https://moluch.ru/archive/145/40559/ (дата обращения: 02.08.2021).



Entity Framework имеет возможность автоматически строить собственные команды для базы данных на основе LINQ to Entities или запросов Entity SQL, а также, строить этих команд для вставки, обновления или удаления данных.

Вы можете переопределить эти команды и использовать свои собственные предопределенные хранимые процедуры. А также можете использовать хранимые процедуры либо для получения данных или добавления / обновления / удаления записей в одной или нескольких таблиц базы данных. [1]

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

Основным языком программирования для СУБД SQL SERVER продолжает оставаться T-SQL, который не обеспечивает такую же поддержку разносторонних способов управления ходом выполнения программы, как процедурные языке наподобие C, C++, Visual Basic, Java, Delphi и т. д. Однако T-SQL становится буквально непревзойденным, когда с его помощью осуществляются операции определения данных, манипулирования данными и доступа к данным, а предусмотренные в нем процедурные конструкции позволяют вполне успешно решать большинство практических задач. [2]

Хранимые процедуры и определяемые пользователем функции (UDF) в базе данных представлены в виде функций в рамках сущности. EDM не будет иметь какой-либо объект для хранимых процедур в дизайнере EDM. [1]

Здесь мы добавим следующую хранимую процедуру StudentByGroupId в EDM. Эта процедура возвращает всех студентов, которые назначены для конкретной группы:

CREATE PROCEDURE [dbo].[StudentByGroupId]

@GId int = null

-- Здесь добавлять параметры процедуры

AS

BEGIN

SET NOCOUNT ON;

SELECT s.Id, s.sname,s.GroupId,g.gname

from Student s Inner Join GroupStudent g ON s.GroupId=g.Id

where s.GroupId=@GId

END

Во-первых, создайте новую модель данных объекта ADO.Net, используя EF Designer from database.

Выберите StudentByGroupId. Убедитесь, что Import selected stored procedures and functions into the entity model установлен флажок, а затем нажмите кнопку Finish.

Вы увидите StudentByGroupId добавлен в Function Imports с новым сложным типом StudentByGroupId _Result в Model Browser. Всякий раз, когда вы импортируйте хранимую процедуру в модель, она создает новый сложный тип с именем {sp name} _Result по умолчанию. [3]

Рис 1. Окно Model Browser

StudentByGroupId возвращает те же поля, определенные в сущности студент. Таким образом, нам не нужно добавлять новый сложный тип возвращаемых данных из StudentByGroupId. Вы можете изменить его, щелкнув правой кнопкой мыши на StudentByGroupId импорта функций и нажмите Edit. Проверьте Entities и выберите из выпадающего списка Student в всплывающем окне, как показано ниже [3, c. 237]

Рис 2. Окно Edit Function Import

Теперь StudentByGroupId может быть вызван и результат, показанный ниже, будут возвращены:

public ActionResult Index()

{ var context = new StudentDateBaseEntities();

var student = context.StudentByGroupId(1);

return View(student.ToList()); }

Код, показанный выше, выполнит следующий оператор:

Exec [DBO]. [StudentByGroupId] @ GId = 1

Литература:

  1. Julia Lerman. Programming Entity Framework, Second Edition. 2010. Printed in the United States of America.
  2. Виейра, Роберт. Программирование баз данных Microsoft SQL Server 2005. Базовый курс: Пер. с англ. — М.: ООО “И. Д. Вильямс”, 2007. — 832с.: ил. — Парал. тит. англ.
  3. Julia Lerman, Rowan Miller. Programming Entity Framework: DbContext. 2012. Printed in the United States of America.
  4. Tom Dykstra, Rick Anderson. Getting Started with Entity Framework 6 Code First using MVC 5. 2014.
Похожие статьи
Шаров Даниил Анатольевич
СУБД Oracle: DDL триггер, как средство контроля изменения структуры базы данных
Информационные технологии
2010
Шаханова Марина Владимировна
Выбор SQL Server для медицинского учреждения
Технические науки
2017
Самойлова Ирина Алексеевна
Некоторые особенности использования технологии noSQL
Информационные технологии
2018
Абилдаева Гулнур Балтабаевна
Технология ADO и средства доступа к реляционным базам данных
Информационные технологии
2015
Карахтанов Дмитрий Сергеевич
Реализация алгоритма Metaphone для кириллических фамилий средствами языка PL/SQL
Информационные технологии
2010
Сланбекова Асылзат Ермановна
Компьютерная технология автоматизирования информационной системы
Информационные технологии
2018
Снегирев Никита Владимирович
Асинхронное выполнение SQL-запросов на языке программирования PHP
Информационные технологии
2017
Омаров Марат Булатович
Экспорт данных о ролевой политике безопасности из Системы управления базами данных ORACLE
Технические науки
2017
Григоров Андрей Сергеевич
Обзор методов обнаружения аномалий в SQL-запросах к базам данных
Технические науки
2011
публикация
№11 (145) март 2017 г.
дата публикации
март 2017 г.
рубрика
Информационные технологии
язык статьи
Русский
Опубликована
Похожие статьи
Шаров Даниил Анатольевич
СУБД Oracle: DDL триггер, как средство контроля изменения структуры базы данных
Информационные технологии
2010
Шаханова Марина Владимировна
Выбор SQL Server для медицинского учреждения
Технические науки
2017
Самойлова Ирина Алексеевна
Некоторые особенности использования технологии noSQL
Информационные технологии
2018
Абилдаева Гулнур Балтабаевна
Технология ADO и средства доступа к реляционным базам данных
Информационные технологии
2015
Карахтанов Дмитрий Сергеевич
Реализация алгоритма Metaphone для кириллических фамилий средствами языка PL/SQL
Информационные технологии
2010
Сланбекова Асылзат Ермановна
Компьютерная технология автоматизирования информационной системы
Информационные технологии
2018
Снегирев Никита Владимирович
Асинхронное выполнение SQL-запросов на языке программирования PHP
Информационные технологии
2017
Омаров Марат Булатович
Экспорт данных о ролевой политике безопасности из Системы управления базами данных ORACLE
Технические науки
2017
Григоров Андрей Сергеевич
Обзор методов обнаружения аномалий в SQL-запросах к базам данных
Технические науки
2011