提问人:Raso 提问时间:10/24/2023 最后编辑:Joel CoehoornRaso 更新时间:10/25/2023 访问量:42
从导出中馈送数据库 MSSQL
Feed database MSSQL from export
问:
我正在寻找一种方法来喂养我的数据库。我使用 Microsoft SQL Server Management Studio 浏览数据库。我在那里的许多桌子上有很多行。
我想找到一种快速导出此数据库的方法,并编写一个脚本,该脚本将在我的 C# 应用程序上提供数据库。我经常不得不删除我的数据库并使用实体框架迁移创建它,而且每次数据库都是空的。我知道仅从MSSQL中做到这一点很容易,但是我想要一种自动化的代码方式,以便当您启动应用程序时,它会馈送数据库。
数据库非常大,实体非常复杂,它们之间有很多关系,所以我不想单独编写一个包含所有内容的 json 文件。希望有一个工具可以做到这一点!
答:
1赞
Mark Vermulst
10/24/2023
#1
我最好的建议是编写一个播种数据的播种机。从技术上讲,您可以让它从 MSSQL 数据库中提取数据,但就我个人而言,我宁愿只编写种子播种器,这些种子自己播种数据,而不需要依赖其他服务。
1赞
hakim00
10/25/2023
#2
有多种方法可以实现此目的,但如前所述,您应该为数据库设定种子。您可以为 编写扩展类。ModelBuilder
public static class ModelBuilderExtensions
{
public static void Seed(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>().HasData(
new MyEntity
{
Id = Guid.NewGuid(),
Name = "SomeString",
SomeValue = 3,
IsSomething = true
}
);
}
}
在上下文类中,调用该方法来填充数据库。Seed
public class MyContext: DbContext
{
public DbSet<MyEntity> MyEntities{ get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Seed();
}
}
您可以在此处阅读有关数据种子的更多信息。
评论