آموزش پیشرفته Data Seeding در EF Core

Data Seeding در EF Core یک تکنیک ضروری برای ایجاد داده‌های پایه در EF Core و Asp.Net Core است. این قابلیت باعث می‌شود راه‌اندازی پروژه در محیط‌های مختلف به راحتی انجام شود. Seeding به شما اجازه می‌دهد. تا بدون نیاز به اسکریپت‌های SQL اطلاعات پایه را وارد کنید.

Data Seeding در EF Core چیست؟

در EF Core، منظور از DataSeeding یا «کاشت داده»، ثبت اطلاعات اولیه در پایگاه‌داده در هنگام ساخت یا به‌روزرسانی آن است. این داده‌ها می‌توانند شامل مواردی مثل دسته‌بندی‌ها، نقش‌های کاربری، تنظیمات سیستم، یا حتی کاربران پیش‌فرض باشند. EF Core این امکان را فراهم می‌کند تا بتوان اطلاعات پایه را هنگام اجرای دستورات migration یا database update به صورت خودکار در جدول‌ها وارد کرد.

مزایای Data Seeding

  • صرفه‌جویی در زمان هنگام راه‌اندازی پروژه
  • جلوگیری از ورود دستی داده‌ها
  • مناسب برای ایجاد اطلاعات تست یا داده‌های ضروری
  • افزایش قابلیت تکرارپذیری (reproducibility) در محیط‌های مختلف (Dev، QA، Prod)

موارد استفاده Data Seeding

  • نقش‌ها (Roles) و کاربران پیش‌فرض (Admins)
  • کشورها، استان‌ها، زبان‌ها
  • تنظیمات اولیه (App Settings)
  • دیتای دمو برای تست

نکته: باید مقدار Id به صورت دستی مشخص شود. چون EF Core هنگام Seed نمی‌تواند از Identity استفاده کند.

نمونه کد Data Seeding

modelBuilder.Entity<Category>().HasData(
    new Category { Id = 1, Name = "موبایل" },
    new Category { Id = 2, Name = "کتاب" },
    new Category { Id = 3, Name = "پوشاک" }
);

یک به یک – نمونه کد Data Seeding

//Model 1
modelBuilder.Entity<User>().HasData(
    new User { Id = 1, Name = "علی" }
);

//Model 2
modelBuilder.Entity<UserProfile>().HasData(
    new UserProfile { Id = 1, Bio = "برنامه‌نویس EF Core", UserId = 1 }
);

یک به چند – نمونه کد Data Seeding

//Model 1
modelBuilder.Entity<Category>().HasData(
    new Category { Id = 1, Title = "الکترونیک" },
    new Category { Id = 2, Title = "ورزشی" }
);

//Model 2
modelBuilder.Entity<Product>().HasData(
    new Product { Id = 1, Name = "موبایل", CategoryId = 1 },
    new Product { Id = 2, Name = "تلویزیون", CategoryId = 1 },
    new Product { Id = 3, Name = "توپ فوتبال", CategoryId = 2 }
);

چند به چند – نمونه کد Data Seeding

//Model 1
modelBuilder.Entity<Student>().HasData(
    new Student { Id = 1, FullName = "محمد رضایی" },
    new Student { Id = 2, FullName = "زهرا احمدی" }
);

//Model 2
modelBuilder.Entity<Course>().HasData(
    new Course { Id = 1, Title = "برنامه‌نویسی C#" },
    new Course { Id = 2, Title = "بانک اطلاعاتی" }
);

//Model 3
modelBuilder.Entity<StudentCourse>().HasData(
    new StudentCourse { StudentId = 1, CourseId = 1 },
    new StudentCourse { StudentId = 1, CourseId = 2 },
    new StudentCourse { StudentId = 2, CourseId = 1 }
);

و در آخر به عنوان جمع بندی میتوان گفت. در Entity Framework Core، Data Seeding یا «کاشت داده» به معنی درج داده‌های اولیه در پایگاه‌داده هنگام ایجاد یا به‌روزرسانی آن توسط Migrations است. این قابلیت بیشتر برای مواردی کاربرد دارد که بخواهیم اطلاعات پایه مثل نقش‌های پیش‌فرض، کشورها، تنظیمات اولیه اپلیکیشن یا کاربران اولیه را به طور خودکار در پایگاه‌داده قرار دهیم.

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی آموزش پیشرفته Data Seeding در EF Core در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه آموزش پیشرفته Data Seeding در EF Core در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.