روش های پیکربندی Domain Classes در Entity Framework Core

طراحی سایت

..روش های پیکربندی Domain Classes در Entity Framework Core..
طراحی سایت

روش های پیکربندی Domain Classes در Entity Framework Core

چگونه کلاس‌های Domain یا دامنه را برای ایجاد دیتابیس به روش CodeFirst پیکربندی کنیم ؟ Data Annotation Attribute چیست و در EF Core چه کاربردی دارد؟ روش Fluent API چیست؟

درود ، من آرزو ابراهیمی هستم برنامه نویس ASP.NET Core ، و با یک مقاله آموزشی دیگر از فصل آموزش Entity Framework Core در خدمت شما دوستان هستم. اگر به دنبال پاسخ سوالات بالا هستید این مقاله آموزشی را از دست ندهید.

سرفصل‌های پست

پیکربندی کلاس های دامنه (Domain Classes) در EF Core

در Entity Framework Core دو روش برای پیکربندی کلاس‌های دامنه (Domain Classes) یا کلاس‌های Entity وجود دارد (مشابه EF 6)

  • با استفاده از Data Annotation Attribute
  • با استفاده از روش Fluent API

روش اول : Data Annotation Attributes

در این روش برای پیکربندی از attribute ها استفاده می‌کنیم. این اتریبوت‌ها بر روی کلاس‌ها و property های کلاس اعمال می‌شوند و به این ترتیب Domain Class ها پیکربندی می‌شوند. به این نکته توجه داشته باشید که برای استفاده از Data Annotation Attribute ها باید فضای نام using System.ComponentModel.DataAnnotations را به فایل Domain Class اضافه کنید.
مثال زیر چگونگی استفاده از این attribute ها در یک Domain Class را نشان می‌دهد:

[Table("StudentInfo")] public class Student {     public Student() { }              [Key]     public int SID { get; set; }      [Column("Name", TypeName="ntext")]     [MaxLength(20)]     public string StudentName { get; set; }      [NotMapped]     public int? Age { get; set; }                       public int StdId { get; set; }      [ForeignKey("StdId")]     public virtual Standard Standard { get; set; } } 

در مثال بالا از اتریبیوت های [Table(“StudentInfo”)] ، [Key] ، [Column(“Name”, TypeName=”ntext”)] ، [MaxLength(20)] ، [NotMapped] ، [ForeignKey(“StdId”)] استفاده شده است که در جلسات آموزشی بعدی با تک تک این Attribute ها آشنا خواهیم شد. هر کدام از این Attribute ها به ما کمک می‌کنند تا Domain Class ها را برای تبدیل به جداول دیتابیس پیکربندی کنیم.

نکته : Data Annotation Attribute ها در EF Core کاملا مشابه EF 6 هستند.

روش دوم : Fluent API

Fluent API یکی دیگر از روش‌ها برای پیکربندی Domain Class‌ها در EF Core هست. Fluent API براساس الگوی Fluent Interface است، به این صورت که نتیجه به صورت زنجیره‌ی متد ها (method chaining) بدست می‌آید.

در مثال زیر پیکربندی Domain Class به روش Fluent API انجام شده است ، همین طور که در کد زیر مشاهده می‌کنید برای پیکربندی کلاس های دامنه (Domain Class) به روش Fluent API باید سراغ کلاس Context پروژه بریم سپس متد OnModelCreating را Override کرده و پیکربندی های لازم را داخل متد OnModelCreating انجام دهیم.

به کدهای داخل متد OnModelCreating دقت کنید ، در روش Fluent API از متدهای Entity ، Property ، HasColumnName HasDefaultValue و IsRequired پشت سرهم به صورت یک زنجیر استفاده شده است و این یعنی روش Fluent API 😊

public class SchoolDBContext: DbContext  {     public DbSet Students { get; set; }              protected override void OnModelCreating(ModelBuilder modelBuilder)     {         modelBuilder.Entity()                 .Property(s => s.StudentId)                 .HasColumnName("Id")                 .HasDefaultValue(0)                 .IsRequired();     } } 

در دوره آموزش پروژه محور ASP.NET Core که برگزار کردیم ، تعدادی از دانشجویان دوره این سوال براشون پیش اومده بود که کدوم یکی از این دو روش بهتره و از کدوم روش برای پیکربندی کلاس های دامنه یا Domain Classes استفاده کنیم ؟ این سوال را در این مقاله مطرح کردم چون شاید این سوال برای شما دوستانی که این مقاله را مطالعه می‌کنید هم پیش بیاید .
پاسخ این سوال این هست که بهتره از هر دو روش در کنار هم استفاده بشه ، یعنی یه جاهایی راحت تر هستیم که از روش Data Annotation Attribute استفاده کنیم و یه جاهایی هم این روش کم میاره و بهتره بریم سراغ روش Fluent API .

بسیار خب در این جلسه آموزشی تا حدودی با روش و Fluent API در پیکربندی Domain Class ها آشنا شدیم در مقالات آموزشی بعدی این دو روش را به صورت مفصل بررسی خواهیم کرد.

93
06 بهمن 1398
..نظرات..
..مقالات پربازدید..
طراحی سایت

آموزش قرعه کشی در اینستاگرام

  آموزش قرعه کشی در اینستاگرام   با سلام خدمت دوستان و کاربران گرامی . امروز با آموزش قرعه کشی در اینستاگرام برای کسانی که علاقه به ایجاد کمپین های تبلیغاتی دارند در خدمت شما هستیم . بحث قرعه کشی در اینستاگرام با توجه به فراگیر شدن این شبکه اجتماعی که البته امروزه زیرمجموعه فیسبوک مطرح میشود ، زیاد شده است . البته این احتمال وج...

18903
24 فروردین 1398
طراحی سایت

bit.ly چیست ؟

بیتلی یا bitly یکی از شناخته‌شده‌ترین سرویس‌های کوتاه کننده لینک است. این سایت با نشانی https://bit.ly در سال ۲۰۰۸ تاسیس شد. یک کوتاه کننده‌ی لینک وظیفه دارد تا لینک‌های مورد نظر کاربران را به شکل کوتاه و قابل خواندن و نوشتن تبدیل کند. این سرویس در هر ماه حدود ۶۰۰ میلیون لینک کاربران را کوتاه می‌کند. علت استفاده از...

4009
27 آذر 1398
سئو

چگونه ویدیو کلاس های آنلاین (وبینار) را ضبط کنیم؟| آموزش ۳ روش

در این مقاله به شما آموزش می دهیم چطور و با چه ابزارهایی می توانید کلاس های آنلاین و یا ویدیوهای آموزشی خودتان را ضبط کنید. امروز که حال و روز جهان خوب نیست، حضور مردم در کنار هم کمرنگ تر شده و فاصله ها از هر زمان دیگری بیشتر شده است. این شرایط به ما فهماند تا چه حد زندگی انسان مدرن وابسته به اینترنت است. این روز ها که همه ی ما مجبور به ماندن در...

3992
08 اردیبهشت 1399