提问人:Iqryn 提问时间:4/6/2023 最后编辑:Peter CsalaIqryn 更新时间:4/6/2023 访问量:96
如何从上下文设定数据库种子
How to seed a database from the context
问:
我正在为求职面试做一个 ASP.NET 核心 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 方法上收到 null 警告,所以我不知道是否有更正确的方法可以做到这一点。不过,我确实想让事情变得简单。
答:
0赞
Qing Guo
4/6/2023
#1
以在应用程序运行时创建 MS SQL Server Express 数据库。
可以参考第 4 部分,向 ASP.NET Core MVC 应用添加模型第 5 部分,在 ASP.NET Core MVC 应用中使用数据库
public class DemoDataContext : DbContext
{
public DemoDataContext (DbContextOptions<DemoDataContext> options)
: base(options)
{
}
public DbSet<Item> Items { get; set; }
}
然后像这样为数据库设定种子,然后添加种子初始值设定项
此外,您可以 数据播种 了解更多信息。
评论