EF Core 播种机制不插入数据

EF Core Seeding mechanism doesn't insert data

我正在尝试使用 EntityFramework、内存数据库和数据库播种器创建 WCF 应用程序。但我卡住了。我不知道为什么这对 C# 来说太麻烦了。在 Java 中,这将是一个 10 分钟的任务,而这件事将 运行.. 无论如何,这是我的 DBContext 代码:

public class AppDBContext : DbContext
    {
        private static readonly DbContextOptions options = new DbContextOptionsBuilder<AppDBContext>().UseInMemoryDatabase("INMEMO-DB").Options;

        public AppDBContext() : base(options)
        {
        }

        public DbSet<Notification> Notifications { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Notification>().HasData(
                new Notification
                {
                    Id = 1
                },

                new Notification
                {
                    Id = 2
                },

                new Notification
                {
                    Id = 3
                }
            );

            base.OnModelCreating(modelBuilder);
        }
    }

如您所见,我正在使用 OnModelCreating 方法将数据播种到我的数据库中。该方法被调用,但不会插入任何数据。我做错了什么?

我运行对这个 C# 东西失去了耐心..

HasData方法只配置实体有种子数据。

要真正为数据库播种,您需要调用

Database.EnsureCreated();

请注意,这仅适用于数据库尚不存在(如内存数据库)的情况,因为 EnsureCreated 否则不执行任何操作。

对于现有数据库,您需要创建并应用迁移。

供参考:Data Seeding