从现有数据库创建实体框架种子方法

Han*_*ele 6 c# entity-framework

我们正在将一个已有 15 年历史的应用程序转换为 C#/Entity Framework Code First。

我已经能够为我需要的表结构创建迁移,并且我想用旧应用程序中的数据填充它们。当然,可以使用 Management Studio 简单地创建脚本,但如果可能的话,我想利用 Code First。

我发现可以对数据库模式进行逆向工程有没有一种简单的方法可以从数据库中的现有数据生成迁移或种子方法?我不太担心性能——数据足够多,手动重新创建会很痛苦,但我们也不是在谈论数千行。

SOf*_*tic 4

实体框架本身不应该用于大量插入/删除/更新记录,因为性能确实很差。如果您希望播种成为迁移的一部分,那么您可以将您的方法包含SqlCommands在您的Seed方法中:

protected override void Seed(Context context)
{
   context.Database.ExecuteSqlCommand("Command Here");
}
base.Seed(context);
Run Code Online (Sandbox Code Playgroud)