Применение хранимых процедур в Entity Framework | Статья в журнале «Молодой ученый»

Авторы: ,

Рубрика: Информатика

Опубликовано в Молодой учёный №11 (145) март 2017 г.

Дата публикации: 18.03.2017

Статья просмотрена: 148 раз

Библиографическое описание:

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



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.
Основные термины (генерируются автоматически): EDM, SQL, T-SQL, сложный тип, баз данных, хранимая процедура, END, DBO, CREATE, BEGIN.


Похожие статьи

СУБД Oracle: DDL триггер, как средство контроля изменения...

Контроль изменений в структуре базы данных (БД), с

Примечание: DDL (Data Definition Language, язык определения данных) – это. подмножество SQL, используемое

Значением данной переменной является CREATE, ALTER или DROP, в зависимости от типа операции.

Выбор SQL Server для медицинского учреждения

В состав Microsoft SQL Server входит мощный язык работы с данными: Transact SQL, который поддерживает такие объекты базы данных как хранимые процедуры, триггеры, представления.

Некоторые особенности использования технологии noSQL

NoSQL не накладывает ограничений на типы хранимых данных и, при необходимости, в процессе работы, можно добавлять «на лету» новые типы.

Вот признаки проектов, для которых идеально подойдут SQL-базы.

Технология ADO и средства доступа к реляционным базам данных

Хранение данных в объектах DataSet. При работе с базой данных нам чаще всего приходится работать не с одной, а несколькими записями.

ADO.NET поддерживает два типа источников данныхSQL Managed Provider и ADO Managed Provider.

Реализация алгоритма Metaphone для кириллических фамилий...

CREATE FUNCTION dbo.MetaPhoneRu (@W varchar(4000)).

– М.: Вильямс, 2008, – 720 с. 2. Виейра Р. Программирование баз данных Microsoft SQL Server 2008. Базовый курс.

Компьютерная технология автоматизирования информационной...

Данный тип сценария позволяет решить противоречия в базе данных. Язык SQL — это язык выполнения запросов для базы данных.

Для добавления необходимой информации в данные нужны процедуры, они называются процедурами, сохраненными в базе.

Асинхронное выполнение SQL-запросов на языке...

Ключевые слова: PHP, SQL, cURL, многопоточная обработка, потоки

Методов разбора SQL-запроса может быть несколько, речь идет о SELECT запросах

на языке Паскаль: типы данных, арифметические выражения, оператор присваивания» для студентов бакалавриата.

Экспорт данных о ролевой политике безопасности из Системы...

В СУБД ORACLE существует два типа привилегий: системные и объектные.

Поиск всех ролей в базе данных. Для каждой роли запуск процедуры поиска выданных

Использование апостериорного анализа данных для обнаружения аномалий в SQL-запросах к базам данных.

Обзор методов обнаружения аномалий в SQL-запросах к базам...

Одним из способов обеспечения безопасности баз данных (БД) является использование

Обучение производится на базе записей из журналов приложения, которые хранят описание

Этот вектор содержит описание типа SQL-команды, множества отношений, к которым...

Обсуждение

Социальные комментарии Cackle

Похожие статьи

СУБД Oracle: DDL триггер, как средство контроля изменения...

Контроль изменений в структуре базы данных (БД), с

Примечание: DDL (Data Definition Language, язык определения данных) – это. подмножество SQL, используемое

Значением данной переменной является CREATE, ALTER или DROP, в зависимости от типа операции.

Выбор SQL Server для медицинского учреждения

В состав Microsoft SQL Server входит мощный язык работы с данными: Transact SQL, который поддерживает такие объекты базы данных как хранимые процедуры, триггеры, представления.

Некоторые особенности использования технологии noSQL

NoSQL не накладывает ограничений на типы хранимых данных и, при необходимости, в процессе работы, можно добавлять «на лету» новые типы.

Вот признаки проектов, для которых идеально подойдут SQL-базы.

Технология ADO и средства доступа к реляционным базам данных

Хранение данных в объектах DataSet. При работе с базой данных нам чаще всего приходится работать не с одной, а несколькими записями.

ADO.NET поддерживает два типа источников данныхSQL Managed Provider и ADO Managed Provider.

Реализация алгоритма Metaphone для кириллических фамилий...

CREATE FUNCTION dbo.MetaPhoneRu (@W varchar(4000)).

– М.: Вильямс, 2008, – 720 с. 2. Виейра Р. Программирование баз данных Microsoft SQL Server 2008. Базовый курс.

Компьютерная технология автоматизирования информационной...

Данный тип сценария позволяет решить противоречия в базе данных. Язык SQL — это язык выполнения запросов для базы данных.

Для добавления необходимой информации в данные нужны процедуры, они называются процедурами, сохраненными в базе.

Асинхронное выполнение SQL-запросов на языке...

Ключевые слова: PHP, SQL, cURL, многопоточная обработка, потоки

Методов разбора SQL-запроса может быть несколько, речь идет о SELECT запросах

на языке Паскаль: типы данных, арифметические выражения, оператор присваивания» для студентов бакалавриата.

Экспорт данных о ролевой политике безопасности из Системы...

В СУБД ORACLE существует два типа привилегий: системные и объектные.

Поиск всех ролей в базе данных. Для каждой роли запуск процедуры поиска выданных

Использование апостериорного анализа данных для обнаружения аномалий в SQL-запросах к базам данных.

Обзор методов обнаружения аномалий в SQL-запросах к базам...

Одним из способов обеспечения безопасности баз данных (БД) является использование

Обучение производится на базе записей из журналов приложения, которые хранят описание

Этот вектор содержит описание типа SQL-команды, множества отношений, к которым...

Задать вопрос