我正在使用实体框架创建一个 .NET 应用程序。我想知道如何创建一个字典表并向其中插入一些数据。我的意思是,它将包含一些静态数据,以便不将其保留在 C# 代码中。我知道有一种称为播种数据的技术,但我认为它更多的是用于插入测试数据,但我最终会使用它。你能给我一些建议吗?
您可以使用以下代码来播种数据:
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
modelBuilder.Entity<Customer>().HasData(SeedCustomers);
}
private static readonly Customer[] SeedCustomers =
{
new Customer(){ CustomerId = Guid.NewGuid(), Name = "Some name"},
new Customer(){ CustomerId = Guid.NewGuid(), Name = "Some name1"},
};
}