چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1000 پست آموزشی

نیازهای روز

آموزش استفاده از Stored Procedure در EF Code First

رویه‌های ذخیره شده یا Stored Procedure به اختصار SP اشیای اجرا پذیر در بانک اطلاعاتی SQL Server هستند که شامل یک یا چند دستور SQL می‌شود. این رویه‌ها می‌توانند پارامترهای ورودی و خروجی داشته باشند و مهمترین کار این رویه‌ها Update، Insert، Select و Delete می‌باشد یا ترکیب از اینها.

ایجاد جدول:

-- ایجاد جدول
CREATE TABLE [dbo].[Employee](
[EmployeeId] [int] NOT NULL,
[FirstName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[Designation] [nvarchar](50) NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
    [EmployeeId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
    ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[Employee] VALUES (1, 'name1', 'family1', 'description1');  
INSERT INTO [dbo].[Employee] VALUES (2, 'name2', 'family2', 'description2');  
INSERT INTO [dbo].[Employee] VALUES (3, 'name3', 'family3', 'description3');

کد زیر Stored Procedure می‌باشد که از آن استفاده خواهیم کرد:

CREATE PROCEDURE usp_GetAllEmployees
AS
SELECT EmployeeId,FirstName,LastName,Designation FROM Employee

گام‌های لازم بخش SQL Server به پایان رسید، اکنون جهت استفاده از Stored Procedure در EF Code First، پروژه جدید جهت فراخوانی اطلاعات ایجاد نماید.

بسته EF را با استفاده از nuget package نصب کنید.

Install-Package EntityFramework

کلاس زیر مدل جدول اطلاعاتی را تشکیل خواهد داد.

namespace CodeFirstStoredProcedure
{
     public class Employee
     {
        public int EmployeeId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Designation { get; set; }
     }
}

ایجاد کانتکست:

using System.Data.Entity;

namespace CodeFirstStoredProcedure
{
     public class EmployeeDbContext : DbContext
     {
          public EmployeeDbContext()
          : base("EmployeeConnectionString")
          {

          }
     public DbSet<Employee> Employees { get; set; }
     }
}

از کد زیر جهت استفاده از Stored Procedure برای دریافت اطلاعات از دیتابیس با استفاده از EF Code Fist استفاده خواهیم کرد.

using (EmployeeDbContext dbContext = new EmployeeDbContext())
{
     string commandText = "[dbo].[usp_GetAllEmployees]";
     var employees = dbContext.Database.SqlQuery<Employee>(commandText).ToList();

     Console.WriteLine("Printing Employee");
     foreach (var employee in employees)
     {
          Console.WriteLine(employee.EmployeeId);
          Console.WriteLine(employee.FirstName);
          Console.WriteLine(employee.LastName);
          Console.WriteLine(employee.Designation);
          Console.WriteLine("-----------------");
     }
}

امید نصری

0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.


You must log on to comment.