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

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

آموزش پیشرفته 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 است. این قابلیت بیشتر برای مواردی کاربرد دارد که بخواهیم اطلاعات پایه مثل نقش‌های پیش‌فرض، کشورها، تنظیمات اولیه اپلیکیشن یا کاربران اولیه را به طور خودکار در پایگاه‌داده قرار دهیم.

جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد