【发布时间】:2020-05-19 02:41:52
【问题描述】:
我正在尝试使用 EntityFramework、In-Memory DB 和 DB 播种器创建一个 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# 东西已经没有耐心了..
【问题讨论】:
-
你需要调用
Database.EnsureCreated()方法。 docs.microsoft.com/en-us/ef/core/modeling/data-seeding -
是的,很好,就是这样......发布它作为答案,我会接受它。
标签: c# entity-framework wcf