1

ASP.NET MVC 5アプリケーションでEntity Framework 6を​​使用しています。私は私のプロジェクトでコードファーストアプローチを使用したくない。Entity Framework 6の移行を一度に中止する方法はありますか?

私は新しいプロジェクトを作成しましたが、移行を有効にしませんでした。 DbContextクラスを拡張するMyContextという新しいクラスを作成しました。ここで私はMyContextコンストラクタ

public MyContext() 
    : base(ConnectionName) 
{ 
     Database.SetInitializer<MyContext>(null); 
} 

に持っているものしかし、私は、アプリケーションをデビューするたびに、私は私のDebug output画面で、以下の出力が表示されます。

SELECT Count(*) 
FROM INFORMATION_SCHEMA.TABLES AS t... 

SELECT 
[GroupBy1].[A1] AS [C1] 
FROM (SELECT 
    COUNT(1) AS [A1] 
    FROM [dbo].[__MigrationHistory] AS [Extent1] 
    WHERE [Extent1].[ContextKey] = @p__linq__0 
) AS ...... 

どのように私は本当に私のアプリケーションに移行を停止することができますか?

+0

あなたは既に溶液からのバックエンドと移行フォルダから__MigrationHistoryテーブルを削除しました::)

だから、これを行いますか? –

+0

あなたのプロジェクトには 'Migrations'フォルダまたは' Configuration.cs'ファイルがありますか?はいの場合は削除してください。 – Alisson

+0

私は__MigrationHistoryテーブルを持っていません。 Migrationsフォルダや 'Configuration.cs'ファイルもありません。これらのことは、私がやったことのないコンソールからのマイグレーションを可能にした後に作成されます –

答えて

0

多くの例があります。あなたがする必要がある最初のことは、ナゲットを介して電動工具をインストールし、DBを既に持っている場合はリバースエンジニアウィザードを使用することです。また、最初から始める場合はこれを見てください:EF DB First

これはあなたのための正しい文脈などを作成します。

あなたは、.NETコアを使用している場合は、その後、それが本当であれば、あなたがいないMigrationsフォルダ、および無Configuration.csファイルを持って、このリンクで

.net core reverse engineer

3

を見て、私はあなたが逃したと思う唯一の事はありますデータベース初期化子。 あなたはDatabase.SetInitializer<MyContext>(null);とデータベースの初期化を無効にしている場合でも、それは設定ファイルを使用して設定することができます追加、設定ファイルを使用して、それを無効にするには

を(source):

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings>  
     <add key="DatabaseInitializerForType MyNamespace.MyDbContext, MyNamespace" 
      value="Disabled" /> 
    </appSettings> 
</configuration> 
0

問題はライン

です
Database.SetInitializer<MyContext>(null); 

インスタンスコンストラクタではなく静的コンストラクタにする必要があります。

static MyContext() 
{ 
     Database.SetInitializer<MyContext>(null); 
} 
関連する問題