آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

مثالی از EF Core در یک Console Application

دوره های مرتبط با این مقاله

مثالی از EF Core در یک Console Application

در این بخش آموزش یاد می گیریم چگونه از EF Core با رویکرد Code-First استفاده کنیم. برای این کار یک Console application تحت .NET Core می سازیم.

Console application تحت .NET Core را می توان با Visual Studio 2017 یا با .NET Core CLI ساخت. در این مثال از Visual Studio استفاده می کنیم.

برای ساخت یک Console application تحت .NET Core در Visual Studio، از مسیر File -> New -> Project..:


مثالی از EF Core در یک Console Application

در پنجره باز شده در بخش Installed گزینه ی C# را انتخاب کنید و Console App ( دقت کنید .NET Core) را بزنید. نام و مسیر دلخواهتان را وارد کنید و OK را بزنید. پروژه ساخته می شود.


مثالی از EF Core در یک Console Application

حال باید EF Core را در پروژه با استفاده از Package Manager Console نصب کنیم. از مسیر Tools -> NuGet Package Manager -> Package Manager Console، PMC را باز کنید و دستور زیر را برای نصب SQL Server provider package اجرا کنید:


PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer

در بخش نصب EF Core به این موضوع پرداختیم.

ساخت Model

Entity Framework به یک Model برای ارتباط با Data Base نیاز دارد. این مدل را براساس شکل کلاس های دامین، Data Annotation ها و Fluent API configuration ها می سازد.

EF model شامل سه بخش است: conceptual model، storage model و mapping بین این دو. در رویکرد Code-First، EF مدل conceptual را براساس کلاس های دامین (entity class) ها، کلاس context و configuration ها می سازد. مدل storage و mapping ها را براساس provider مورد استفاده می سازد. برای مثال، storage model برای SQL Server متفاوت از DB2 است.

EF از این مدل برای عملیات های CRUD (Create, Read, Update, Delete) روی Data Base استفاده می کند.

پس باید entity class ها و context class ها را ایجاد کنیم. کد زیر یک کلاس ساده برای موجودیت Student و Course است:


public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
}
public class Course
{
    public int CourseId { get; set; }
    public string CourseName { get; set; }
}

حال باید context class را با ارث بری از DbContext بسازیم:


namespace EFCoreTutorials
{
    public class SchoolContext : DbContext
    {
        public DbSet< Student > Students { get; set; }
        public DbSet< Course > Courses { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        { 
            optionsBuilder.UseSqlServer(@"Server=.\SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;");
        }
    }
}

کلاس context بالا دو DbSet property دارد، یکی برای نوعStudent و دیگری برای Course که به جداول Students و Courses در Data Base map می شوند. در متد OnConfiguring()، یک instance از DbContextOptionsBuilder برای تعیین Data Base مورد نظر استفاده می شود. MS SQL Server provider را نصب کردیم که extension method UseSqlServer را به DbContextOptionsBuilder اضافه کرده است.

Connection string تعیین شده یعنی "Server=.\SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;" در متد UseSqlServer ، اطلاعات مربوط به Data Base را فراهم می کند. بخش Server= تعیین کننده ی سروری است که استفاده می شود، Database= تعیین کننده ی نام Data Baseی است که قرار است ساخته شود، و Trusted_Connection=True مشخص می کند با Windows authentication به سرور متصل شویم. EF Core از این Connection String برای ساخت Data Base هنگام اجرای دستور migration استفاده می کند.

پس از ساخت entity و context، وقت آن است که برای ساخت Data Base migration اضافه کنیم.

افزودن یک Migration

EF Core دستورات migration مختلفی برای ساخت و آپدیت Data Base براساس مدل دارد. تا این لحظه Data Base SchoolDB ساخته نشده. با افزودن یک migration آن را از روی مدل می سازیم.

می توان دستور migration را از طریق NuGet Package Manger Console یا dotnet CLI اجرا کرد.

در Visual Studio، از مسیر Tools -> NuGet Package Manager -> Package Manager Console، PMC را باز کنید و دستور زیر را اجرا کنید:


PM> add-migration CreateSchoolDB

اگر از dotnet CLI استفاده می کنید، دستور زیر را وارد کنید:


> dotnet ef migrations add CreateSchoolDB

این دستور پوشه ی جدیدی به نام Migrations در پروژه ایجاد می کند و فایل های ModelSnapshot را در آن می سازد.

پس از ایجاد یک migration، با دستور update-database در PMC، Data Base را ایجاد می کنیم:


PM> update-database –verbose

اگر از dotnet CLI استفاده می کنید، دستور زیر را وارد کنید:


> dotnet ef database update

Data Base ساخته می شود و دو جدول Students و Courses خواهد داشت:


مثالی از EF Core در یک Console Application

این اولین migration برای ساخت Data Base بود. حال هرزمان کلاس های domain یا configuration ها را عوض کردید، باید Data Base را با مدل sync کرد. باری این کار دوباره از دستورات add-migration و update-database استفاده می کنیم.

خواندن و نوشتن دیتا

حال می توانیم با استفاده از context class دیتا را ذخیره و بازیابی کنیم:


namespace EFCoreTutorials
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var context = new SchoolContext()) {
                var std = new Student()
                {
                     Name = "Bill"
                };
                context.Students.Add(std);
                context.SaveChanges();
            }
        }
    }
}

این مراحلی است که برای استفاده از EF Core لازم است. بخش های ذخیره دیتا در EF Core و Query زدن روی Data Base با استفاده از EF Core را برای اطلاعات بیشتر مطالعه کنید.

  • 35
  •    0
  • تاریخ ارسال :   1398/06/13

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .