如何从上下文为数据库提供种子



我正在做一个ASP。. NET Core MVC演示项目求职面试。我正在使用的书向我展示了如何从空项目模板连接MVC项目。我在数据库上下文类的构造函数中调用database . ensurecreated(),以在应用程序运行时创建MS SQL Server Express数据库。这对于演示项目来说已经足够好了,因为它只需要在本地运行。但是,在这种情况下,为数据库播种的最佳方式是什么?我想这样做:

public class DemoDataContext : DbContext
{
public DbSet<Item> Items { get; set; }
public DemoDataContext(DbContextOptions<DemoDataContext> options) : base(options)
{
Database.EnsureCreated();
if (!Items.Any())
{
Items.Add(new Item
{
Id = 1,
Name = "Item" 
});
}
SaveChanges();
}
}

然而,我在DbSet方法上得到空警告,所以我不知道是否有更正确的方法来做到这一点。我确实想让事情保持简单。

在应用运行时创建MS SQL Server Express数据库。

您可以参考第4部分,将模型添加到ASP。asp.net Core MVC应用程序第5部分,在asp.net Core MVC应用程序中使用数据库。. NET Core MVC应用

public class DemoDataContext : DbContext
{
public DemoDataContext (DbContextOptions<DemoDataContext> options)
: base(options)
{
}
public DbSet<Item> Items { get; set; }
}

然后像这样为数据库设置种子,并添加种子初始化器

此外,你可以阅读数据播种来了解更多。

最新更新