1

明示的な移行でEF4.3を使用しています。新しい移行を定義し、ローカル開発データベースでUpdate-Databaseを呼び出すと、すべてが正常に機能し、適用されていない移行のみがデータベースに適用されます。

しかし、別のデータベースを移行しようとすると(移行前の開発データベースと同じ状態になります)、

Update-Database -ConnectionStringName=MyProdConnectionStringName

dbの状態と既存の__MigrationHistoryテーブルは無視され、efはすべての移行を私のprod dbに適用しますが、すでにいくつかのテーブルがあるため失敗します。

おそらく、テーブルにカスタムスキーマを使用していることを知っておくとよいでしょう[Table("TabName", Schema = "stepid")]。__MigrationHistoryテーブルには、データベースのデフォルトスキーマがあります(開発マシンのdboと本番環境のプロジェクト)。

4

1 に答える 1

0

わかりました。__MigrationHistoryテーブルはスキーマに含まれている必要があるようdboです。EF移行では、データベースの作成時にデータベースのデフォルトスキーマ(私の場合は「プロジェクト」と呼ばれます)を使用し、その後、データベースを呼び出すときにUpdate-Databaseそのテーブルをクエリしませんが、データベースに移行が適用されなかったと想定します。

スキーマを手動でdboに変更すると、正常に機能します。

于 2012-06-14T10:46:06.173 に答える