2

MVC 4 プロジェクトに接続されたデータベースがあります。データベースはこのコードから自動的に作成されます:

public class ContextInitializer : DropCreateDatabaseIfModelChanges<ContextModel>
{
    protected override void Seed(ContextModel context)
    {
        base.Seed(context);
    }
}

私は、人々がドロップ後にデータベースをシードバックし、次のコードで再作成することを見ました:

 System.Data.Entity.Database.SetInitializer(new CarStore.Models.SampleData.cs);

これはうまくいきます。しかし、私の質問は次のとおりです。

1位。SQL ファイルからデータをシードするにはどうすればよいですか。SampleData.sql があり、そのファイルを「実行」してすべてのデータを挿入するにはどうすればよいですか。

2 つ目は、DropAndCreateIfModelChanges の前に、データベース データから最新バージョンにバックアップする方法はありますか? そして、そのファイルからそのデータをシードするには?

ありがとう。

4

1 に答える 1

0

私は答えを得ました:)

私はついにこの問題を解決することができました。

これがコードです。おそらく誰かがそれを必要としています!

var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
context.Database.ExecuteSqlCommand(File.ReadAllText(baseDirectory + 
"\\IF YOU HAVE ANOTHER DIRECTOR INSIDE BASEDIR \\SQL" + "\\YOURFILENAME.sql"));

それは私にとって非常にうまく機能します。最適化され、読みやすくなっています。

于 2013-07-26T06:21:29.493 に答える