روش های پیکربندی 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 ها آشنا شدیم در مقالات آموزشی بعدی این دو روش را به صورت مفصل بررسی خواهیم کرد.

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

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

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

9659
24 فروردین 1398
برنامه نویسی

آموزش کار با افزونه دکان (چند فروشندگی)

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

801
04 دی 1397
برنامه نویسی

ویژگی های جدید لاراول 5.8

تغییرات لاراول 5.8 LARAVEL ورژن بعدی فریم ورک لاراول با نسخه ۵.۸ در ماه فوریه سال ۲۰۱۹ منتشر میشه. در حال حاظر تنها مواردی که قطعی شده پشتیبانی لاراول ۵.۸ از کتابخانه carbon نسخه ۲ می باشد. و قابلیت امکان سوییچ بین هر دو نسخه یک و دو carbon مورد دیگر استفاده laravel 5.8 از vlucas/phpdotenv ورژن 3 برای فایل .env میباشد که اجازه استف...

739
08 اسفند 1397