10

MVC4でEF5を使用しています。問題は、レガシー DB から既にインポートした DB に大きなデータがあることです。モデルが変更されたときにそのデータをロードしたい。私の質問は、DB に既にある大量のデータをシードするにはどうすればよいですか?

internal sealed class Configuration : MigrationsConfiguration<VoiceLab.Models.EFDataContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(VoiceLab.Models.EFDataContext context)
    {
     //what to do here to seed thousands or records that are already in db
    }

}

ありがとう、

4

2 に答える 2

17

シードメソッドで.sqlファイルを提供するだけで、バルクデータをシードする方法は次のとおりです。

public class AppContextInitializer : CreateDatabaseIfNotExists<AppContext>
{
    protected override void Seed(AppContext context)
    {
        var sqlFiles = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.sql").OrderBy(x => x);
        foreach (string file in sqlFiles)
        {
            context.Database.ExecuteSqlCommand(File.ReadAllText(file));
        }

        base.Seed(context);
    }
}
于 2012-10-16T08:27:35.090 に答える