فرآیندی است که این امکان رو میده تا دادههای اولیه را به پایگاهداده اضافه کنیم تا در زمان اولیه اجرای برنامه اطلاعات مورد نیاز در دسترس باشد. در مواردی که نیاز به تست یا راهاندازی سریع دادهها داریم به درد میخوره.
modelBuilder.Entity<Product>().HasData(
new Product { ProductId = 1, Name = "Laptop", Price = 1200 },
new Product { ProductId = 2, Name = "Mouse", Price = 20 },
new Product { ProductId = 3, Name = "Keyboard", Price = 50 }
);
}
2. استفاده از IDataSeeder Interface : این اینترفیس به ما امکان میدهد که کنترل بیشتری بر روی پر کردن دادههای اولیه داشته باشیم و عملیات پیشرفتهتری نظیر خواندن از فایل یا دیتابیس دیگر را انجام دهیم.
public interface IDataSeeder
{
Task SeedAsync(DbContext context);
}
public class ProductSeeder : IDataSeeder
{
public async Task SeedAsync(AppDbContext context)
{
if (!context.Products.Any())
{
context.Products.AddRange(
new Product { ProductId = 1, Name = "Laptop", Price = 1200 },
new Product { ProductId = 2, Name = "Mouse", Price = 20 },
new Product { ProductId = 3, Name = "Keyboard", Price = 50 }
);
await context.SaveChangesAsync();
}
}
}
در این مثال، ProductSeeder از IDataSeeder ارثبری شده است و متد SeedAsync را پیادهسازی میکند تا دادههای اولیه محصولات را به پایگاهداده اضافه کند. این روش میتواند برای پر کردن دادههای اولیه با شرایط خاص و یا مبتنی بر پردازشهای دیگر مانند خواندن از فایل یا API مفید باشد.
Data Seeding :
فرآیندی است که این امکان رو میده تا دادههای اولیه را به پایگاهداده اضافه کنیم تا در زمان اولیه اجرای برنامه اطلاعات مورد نیاز در دسترس باشد. در مواردی که نیاز به تست یا راهاندازی سریع دادهها داریم به درد میخوره.
روشهای Data Seeding: 1. استفاده از HasData
protected override void OnModelCreating(ModelBuilder modelBuilder) {
}
2. استفاده از IDataSeeder Interface : این اینترفیس به ما امکان میدهد که کنترل بیشتری بر روی پر کردن دادههای اولیه داشته باشیم و عملیات پیشرفتهتری نظیر خواندن از فایل یا دیتابیس دیگر را انجام دهیم.
public interface IDataSeeder {
}
public class ProductSeeder : IDataSeeder {
}
در این مثال، ProductSeeder از IDataSeeder ارثبری شده است و متد SeedAsync را پیادهسازی میکند تا دادههای اولیه محصولات را به پایگاهداده اضافه کند. این روش میتواند برای پر کردن دادههای اولیه با شرایط خاص و یا مبتنی بر پردازشهای دیگر مانند خواندن از فایل یا API مفید باشد.