Entity Framework - كيفية إنشاء Migration باستخدام الأمر Add-Migration

Entity Framework Core - كيفية إنشاء Migration باستخدام الأمر Add-Migration


🛠️ ما هو الأمر Add-Migration؟

الأمر Add-Migration هو أمر يستخدمه المطورون لإخبار Entity Framework Core أن يقوم بتتبع التغييرات التي حدثت على الـ Models (الكلاسات) ثم يقوم بإنشاء ملف Migration جديد يمثل هذه التغييرات.

بمعنى آخر: هذا الأمر يحول التغييرات البرمجية إلى تعليمات قابلة للتطبيق على قاعدة البيانات لاحقًا.


🧩 الصيغة الأساسية للأمر


Add-Migration MigrationName

- حيث MigrationName هو اسم تصفه فيه التغييرات التي قمت بها (مثلاً: InitialCreate أو AddDescriptionToProduct).


🖥️ أين يتم تنفيذ الأمر؟

  • داخل Visual Studio ➔ افتح Package Manager Console.
  • أو إذا كنت تستخدم Terminal ➔ أوامر dotnet ef عبر سطر الأوامر.

🔹 في Package Manager Console:


Add-Migration InitialCreate

🔹 أو عبر CLI (لو كنت تفضل التعامل مع terminal):


dotnet ef migrations add InitialCreate

🧠 ماذا يحدث بعد تنفيذ Add-Migration؟

  • يتم إنشاء مجلد (عادةً اسمه Migrations) داخل المشروع إن لم يكن موجودًا.
  • يتم إنشاء ملف كود يمثل التغييرات التي قمت بها (C# Code يحتوي على أوامر CreateTable، AlterTable، إلخ).
  • يتم إنشاء ملف Snapshot يعكس حالة قاعدة البيانات بعد هذا التغيير.

✅ ولكن قاعدة البيانات نفسها لم تتغير بعد ➔ يجب تنفيذ الأمر Update-Database لاحقًا لتطبيق التغييرات فعليًا.


🔍 مثال عملي متكامل

لنفترض أنك أضفت الكلاس التالي:


public class Category
{
    public int CategoryId { get; set; }
    public string CategoryName { get; set; }
}

ثم نفذت الأمر التالي:


Add-Migration AddCategoryTable

🔹 النتيجة:

  • إنشاء ملف Migration جديد باسم AddCategoryTable.
  • داخل هذا الملف، تجد كود C# يشبه:


migrationBuilder.CreateTable(
    name: "Categories",
    columns: table => new
    {
        CategoryId = table.Column<int>(nullable: false)
            .Annotation("SqlServer:Identity", "1, 1"),
        CategoryName = table.Column<string>(nullable: true)
    },
    constraints: table =>
    {
        table.PrimaryKey("PK_Categories", x => x.CategoryId);
    });

ولكن حتى الآن ➔ لم يتم إنشاء الجدول فعليًا داخل قاعدة البيانات... إلا بعد تنفيذ Update-Database


⚡ نصائح مهمة عند تنفيذ Add-Migration

  • اختر أسماء Migration معبرة مثل: AddBirthDateToEmployee، أو UpdateProductSchema.
  • تأكد أن مشروع API/Website هو المشروع الإفتراضي قبل تنفيذ الأمر.
  • تحقق أن لديك الاتصال الصحيح بقاعدة البيانات (Connection String).
  • لو واجهت أخطاء أثناء Add-Migration، تأكد أن مشروعك يترجم بنجاح (Build Successful).

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework