13

データベースの移行について説明しているMSDN BLOGのスクリーンキャストを見ました。

この機能をいつ使用できるか知っている人はいますか? CTP5 ではまだ動作しないようです。

ところで、スキーマ コードを変更した後に初期データをシードする方法はありますか?

これが私が今行っていることです。モデルを変更するたびにすべてのデータが消去されます。

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());
4

3 に答える 3

10

2011 年の第 1 四半期をターゲットとする RTM バージョンで、この移行機能を取得する可能性が最も高いでしょう。

データベースにいくつかの初期データを入力するには、独自のデータベース初期化子を作成し、それを目的の戦略から継承させ (現在は 2 つのオプションがあります)、その内部のSeedメソッドをオーバーライドします。

public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    protected override void Seed(InheritanceMappingContext context)
    {        
        MyEntity entity = new MyEntity()
        {
            ...
        };
        context.MyEntities.Add(entity);
        context.SaveChanges();
    }
}
于 2011-01-16T04:05:05.147 に答える
1

Alpha3がリリースされました。 http://blogs.msdn.com/b/adonet/archive/2011/09/21/code-first-migrations-alpha-3-no-magic-walkthrough.aspx

于 2011-10-12T22:56:42.947 に答える
0

EF 4.1 Candidate Release は 3 月に発行されましたが、この移行機能はまだ含まれていないようです

于 2011-06-17T17:56:31.280 に答える