شروع کار با روش Code First در Entity Framework

شنبه 25 مهر 1394

روش code first با Entity Framework در نسخه v4.1 معرفی شد. Entity Framework اجازه می دهد تا entity های سفارشی ( کلاس های POCO) ایجاد شوند و بر اساس آن به راحتی می توان پایگاه داده را ایجاد کرد و یا تغییر داد.

شروع کار با روش Code First در Entity Framework

شما چه پایگاه داده داشته باشید و چه یک پایگاه داده جدید ایجاد کنید می توانید روش Entity Framework code first را استفاده کنید، زیرا ابزار Entity Framework می تواند کلاس ها و property های مورد نیاز را به ازای جدول ها و ستون ها تولید کند. Migration در Entity Framework نقش بسیار مهمی در ایجاد و یا تغییر پایگاه داده ایفا می کند. Migration زمانی که هر Entity تغییر کند به صورت خودکار تغییرات پایگاه داده را اعمال می کند. ما در مقاله بعدی به طور مفصل در مورد migration صحبت خواهیم کرد.

در این مقاله مثال ساده ای را در نظر گرفتیم که برای یادگیری افراد مبتدی در روش Entity Framework code first مناسب می باشد. مراحل کار به شرح زیر است:

1.یک برنامه با console applicationایجاد کنید.

2.کلاس های Student.cs و Department.cs را در پروژه بسازید. به ازای هر یک از کلاس های POCO، یک Departmentچندین دانش آموز(student) دارد.یعنی رابطه بین آنها یک به چند است. این نوع ارتباط را با navigation property می توان پیاده سازی کرد.

Student.cs

public class Student
{
     public Student()
     {
     }
     public int Id { get; set; }
     public string Name { get; set; }
     public DateTime? DateOfBirth { get; set; }
     public string EmailId { get; set; }
     public string Address { get; set; }
     public string City { get; set; }

     public Department Department { get; set; } // Navigation Property
}

Department.cs

public class Department
{
    public Department()
    {
    }
    public int Id { get; set; }
    public string DepartmentName { get; set; }

    public List Students { get; set; } // Navigation property
}

3.رفرنس(reference) مربوط به Entity Framework را دانلود کرده و آن را به پروژه خود اضافه کنید.

بعد از دانلود یک pop up برای اضافه کردن رفرنس ها به پروژه نشان داده می شود، مانند زیر:

کتابخانه System.ComponentModel.DataAnnotations را برای استفاده از کلاس های Data Annotation به بالای برنامه در قسمت Using ها اضافه کنید.بعد از اضافه کردن Data Annotation کلاس ما به صورت زیر خواهد شد:

    [Table("Department")]
    public class Department
    {
        public Department()
        {

        }
        [Key]
        public int Id { get; set; }
        public string DepartmentName { get; set; }

        public List<Student> Students { get; set; } // Navigation property
    }

    [Table("Student")]
    public class Student
    {
        public Student()
        {

        }
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }

        [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
        public DateTime? DateOfBirth { get; set; }
        public string EmailId { get; set; }
        public string Address { get; set; }
        public string City { get; set; }

        public Department Department { get; set; } // Navigation Property
    }

4. StudentDbContext.cs را به پروژه اضافه کنید که از (DbContext(System.Data.Entity ارث بری خواهد کرد و کد آن به صورت زیر است.

public class StudentDbContext : DbContext
{
     public DbSet<Student> Students { get; set; }
     public DbSet<Department> Departments { get; set; }
}

یک DbSet نشان می دهد که مجموعه ای از entity ها در context وجود دارد و یا می تواند از پایگاه داده query زده شود.

5.ما تقریبا تمام موارد را انجام دادیم . حالا زمان تست کردن روش Code First فرا رسیده است. Student را اضافه کنید تا با پایگاه داده در تعامل باشد.

public class Program
{
    static void Main(string[] args)
    {
        using (var context = new StudentDbContext())
        {
            var student = new Student()
            {
                Name = "Test",
                EmailId = "test@gmail.com",
                Address = "Test Address",
                City = "Test City"
            };
            context.Students.Add(student);
            context.SaveChanges();
        }
    }
}

پایگاه داده

روش Entity Framework code first پایگاه داده را به صورت اتوماتیک در Sql Server محلی ایجاد می کند زیرا ما connectionstring را مشخص نکرده ایم و به طور پیش فرض روی LocalDB می باشد. در برنامه EF ما پایگاه داده با نام EFCodeFirstApp.StudentDbContext در Sql Server محلی ایجاد شده است. آن دو جدول Department و Student را ایجاد کرده است. همچنین می بینید که Department_Id به عنوان کلید خارجی و به صورت خودکار به جدول Student اضافه شده است.

روش Entity Framework code first بسیار گسترده است، در این مقاله سعی کردیم تنها بخش کوچکی از آن را برای آشنایی مبتدیان ارائه دهیم.

آموزش سی شارپ

فایل های ضمیمه

نوشین تقیان

نویسنده 1 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 5 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید