【问题标题】:Create Entity Framework Seed method from existing database从现有数据库创建实体框架种子方法
【发布时间】:2013-09-07 03:43:08
【问题描述】:

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

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

我知道reverse engineer a database schema 是可能的。 有没有一种简单的方法可以从数据库中的现有数据生成迁移或 Seed 方法?我不太担心性能 - 手动重新创建足够的数据会很痛苦,但是我们也不是在谈论数千行。

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

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

    protected override void Seed(Context context)
    {
       context.Database.ExecuteSqlCommand("Command Here");
    }
    base.Seed(context);
    

    【讨论】:

    • 我不太担心性能 - 数据足够复杂,手动重新创建会很痛苦,但我们也不是在谈论数千行。如果这真的是最好的选择,我可能只是将所有内容转储到字符串文字中。
    • 您的数据当前是否在 sql server 数据库中?如果是,您可以使用Generate Scripts 功能。
    • 这看起来是最合理的选择。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多