是否有任何方法可以将SQL Server *data* 转换为实体框架对象,以用于播种数据?

fhity93d  于 2022-12-17  发布在  SQL Server
关注(0)|答案(2)|浏览(99)

我正在使用实体框架代码第一,我想生成C#代码,用于从数据库中已存在的数据播种数据。现在,填充DropCreateDatabaseIfModelChanges.Seed()似乎是一个完全手工的过程,开发人员创建对象并填充值。如果开发人员是唯一负责播种数据的人,这在某种程度上是可管理的,但我想通常情况并非如此。
在我的特殊情况下,有一些非开发人员通过使用一些MVCScaffolding生成的输入表单来帮助填充数据库。他们添加的数据确实属于“种子数据”类别,所以我想将他们新添加的行包含到我的Seed()实现中。人们可以简单地将其解释为“生成C#代码INSERT脚本”函数。
谢谢!

kx5bkwkv

kx5bkwkv1#

最好的解决方案,我来处理这个可以在这里看到:https://stackoverflow.com/a/29785119/277992
它不会生成C#代码,但我可以快速地将数据植入到新创建的数据库中,我可以使用SSMS的“编辑数据”功能更新种子数据,然后重新生成另一个INSERT脚本。

kcrjzv8t

kcrjzv8t2#

您可以只生成一个sql脚本,然后在seed方法中运行它:

var sql = System.IO.File.ReadAllText("SqlScript.sql");
_context.Database.ExecuteSqlCommand(sql);

如果我希望在迁移更新期间植入数据:

public override void Up()
{
       SqlFile(@"migrationscripts/cities/insert-cities.sql");
}
        
public override void Down()
{
       SqlFile(@"migrationscripts/cities/delete-cities.sql");
}

相关问题