15

プロジェクトに Framework 4.0 用の Entity Framework 5.0 RC をインストールしました。しかし、ビューからデータを取得しようとすると、エラーが発生します。EF は、このエンティティのテーブルを作成しようとします。

4

2 に答える 2

26

アプリケーションの起動時にこれを使用して、データベースの初期化と移行をオフにします。

Database.SetInitializer<YourContextType>(null);
于 2012-05-24T08:48:14.220 に答える
11

コンテキストを使用しているプロジェクトに関係なく、データベースの初期化/移行を完全にオフにしたい場合は、コンテキストに静的コンストラクターを追加して初期化子を呼び出すことができます。これにより、コンテキストの最初の構築/使用の前に SetInitializer が 1 回呼び出されることが保証されます。

public class YourContext : DbContext
{
    static YourContext()
    {
        // don't let EF modify the database schema...
        Database.SetInitializer<YourContext >(null);
    }

    public YourContext() : base("name=YourContext")
    {}
    ...
}

ただし、選択したいくつかのプロジェクトでのみこれを実行したい場合は、Ladislav が提案するように、通常の IoC セットアップ中など、アプリケーションの起動を介して明示的に実行することをお勧めします。

于 2013-07-30T22:06:34.437 に答える