Главная страница
Навигация по странице:

  • Server

  • Stored Procedures (Хранимые процедуры)

  • Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5


    Скачать 1.04 Mb.
    НазваниеЛабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
    АнкорНовые Лпр-ки
    Дата19.03.2022
    Размер1.04 Mb.
    Формат файлаdocx
    Имя файлаВеб ЛПР новые (1).docx
    ТипЛабораторная работа
    #403967
    страница24 из 27
    1   ...   19   20   21   22   23   24   25   26   27

    Лабораторная работа 7. Использование хранимых процедур


    В этой работе вы узнаете, как использовать хранимые процедуры, чтобы получить больше контроля над доступом к базе данных.

    Платформа Entity Framework поддерживает возможность использования хранимых процедур для доступа к базе данных. Для любой сущности вы можете указать хранимую процедуру, чтобы использовать ее для создания, обновления или удаления объектов этого типа. Тогда в модели данных вы можете добавить ссылки на хранимые процедуры, которые можно использовать для выполнения таких задач, как получение наборов данных.

    Использование хранимых процедур является общим требованием для доступа к базе данных. В некоторых случаях администратор базы данных может потребовать, чтобы весь доступ к базе данных проходил через хранимые процедуры в целях безопасности. В других случаях вы можете построить бизнес-логики в некоторых процессах, которые Entity Framework использует при обновлении базы данных. Например, всякий раз, когда объект удаляется, возможно, вы хотите скопировать его в архивной базе данных. Или, когда ряд обновляется, вы можете написать строку таблицы регистрации, которая записывает, кто сделал изменения. Вы можете выполнить эти виды задач в хранимой процедуре, которая вызывается, когда Entity Framework удаляет или обновляет объект.

    В этой работе вы измените способ обращения к базе данных для некоторых уже созданных страниц. Вы создадите хранимые процедуры в базе данных для вставки объектов Student и Instructor. Вы добавите их в модели данных, укажите, что Entity Framework должен использовать их для добавления объектов Student и Instructor в базу данных. Вы также создадите хранимую процедуру, которую можно использовать для извлечения объектов Course.

    Упражнение 1. Создание хранимых процедур в базе данных


    1. В Server Explorer (Обозревателе серверов) раскройте узел School.mdf, далее раскройте узел Stored Procedures (Хранимые процедуры) и просмотрите список уже существующих процедур в базе данных School.

    2. Выделите папку Stored Procedures (Хранимые процедуры) и в контекстном меню выберите команду Add New Stored Procedure (Добавить новую хранимую процедуру).

    3. Скопируйте следующие SQL-выражения и вставьте в окно редактирования хранимой процедуры, заменив шаблон:

    CREATE PROCEDURE [dbo].[InsertStudent] @LastName nvarchar(50), @FirstName nvarchar(50), @EnrollmentDate datetime

    AS

    INSERT INTO dbo.Person (LastName,

    FirstName, EnrollmentDate)

    VALUES (@LastName, @FirstName, @EnrollmentDate);

    SELECT SCOPE_IDENTITY() as NewPersonID;

    Student имеет четыре свойства: PersonID, LastName, FirstName и EnrollmentDate. В базе данных генерируется значение идентификатора автоматически, и хранимая процедура принимает параметры для трех других свойств. Хранимая процедура возвращает значение ключа записи новой строки так, чтобы платформа Entity Framework могла отслеживать версию объекта в памяти.

    1. Сохраните и закройте хранимую процедуру.

    2. Создайте хранимую процедуру InsertInstructor, используя следующее SQL выражение:

    CREATE PROCEDURE [dbo].[InsertInstructor] @LastName nvarchar(50),

    @FirstName nvarchar(50), @HireDate datetime

    AS

    INSERT INTO dbo.Person (LastName,

    FirstName, HireDate)

    VALUES (@LastName, @FirstName, @HireDate);

    SELECT SCOPE_IDENTITY() as NewPersonID;

    1. Создайте две хранимые процедуры обновления объектов Student и Instructor. (база данных имеет хранимую процедуру удаления DeletePerson, которая может применяться и для Instructor и для Student).

    CREATE PROCEDURE [dbo].[UpdateStudent] @PersonID int,

    @LastName nvarchar(50),

    @FirstName nvarchar(50), @EnrollmentDate datetime AS

    UPDATE Person SET LastName=@LastName, FirstName=@FirstName, EnrollmentDate=@EnrollmentDate

    WHERE PersonID=@PersonID;
    CREATE PROCEDURE [dbo].[UpdateInstructor] @PersonID int,

    @LastName nvarchar(50), @FirstName nvarchar(50), @HireDate datetime

    AS

    UPDATE Person SET LastName=@LastName, FirstName=@FirstName, HireDate=@HireDate

    WHERE PersonID=@PersonID;

    1. Создайте хранимую процедуру, которая будет считывать данные о курсах:

    CREATE PROCEDURE [dbo].[GetCourses]

    AS

    SELECT CourseID, Title, Credits, DepartmentID

    FROM dbo.Course

    1   ...   19   20   21   22   23   24   25   26   27


    написать администратору сайта