2017-01-25 10 views
1

:__EFMigrationsHistoriesEFコア - このテーブルをクリアする方法をクリア__EFMigrationsHistoriesテーブル

私は私の移行か何かを削除したくない、私は明示的にコードによって、このテーブルをクリアしたいです。

編集:

私はこれをしたい理由は、私は少し説明しようと思います!私はすべてのスタートアップで同じ(そして唯一の)マイグレーションを呼びたいと思っています。

このマイグレーションはすべてのモデルをループし、onUpdateMethodを呼び出すため、すべてのモデルが独自にアップデートを処理できます。

+0

なぜあなたはそれをしたいですか?そのテーブルは移行追跡コードによって使用されるため、このテーブルをクリアすることであらゆる種類の面白い問題が発生する可能性があります。 – DavidG

+2

あなたのSQLサーバで簡単なクエリを実行する - > DELETE FROM table_name – Valkyrie

+0

@Valkyriee私はC#アプリケーションでこれをやりたいとします。 – Flo

答えて

1

あなたはSQL内データクリアにしたい場合は、ここでクエリです:

DELETE FROM [TableName] 

あなたは以下のようにEntity Frameworkのを使用して、このクエリを実行し、アプリケーション内のデータをクリアしたい場合:

context.Database.ExecuteSqlCommand("TRUNCATE TABLE [TableName]"); 

TRUNCATE TABLEステートメントは、テーブル内のすべての行を高速かつ効率的に削除する方法です。 TRUNCATE TABLEWHERE clauseのない文のDELETEに似ています。ただし、TRUNCATE TABLEは高速であり、システムおよびトランザクションログのリソースをより少なくします。

+0

私は本当に 'TRUNCATE TABLE'を使うのはお勧めできません。ログを完全にバイパスしてしまいます。データベースバックアップ。 – DavidG

+0

私はこのコマンドで試してみます: context.Database.ExecuteSqlCommand( "DELETE FROM __EFMigrationsHistories"); しかし、私はこのエラーを得た: __EFMigrationsHistory – Flo

+0

は、正しいテーブル名だった – Valkyrie

関連する問題