0

私たちは、データベースの移行でef code first 4.4を使用しています。に Paypal というエンティティがありますDbContextUpdate-Databaseパッケージ マネージャー コンソールからコマンドを実行すると、db が生成されますが、例外がスローされ、メッセージが表示されます。

There is already an object named 'PayPal' in the database.

詳細コマンドを使用してパッケージ マネージャー コンソールで sql ステートメントを調べたところ、Paypal テーブルを作成するための 2 つのコマンドがありました。1 つは Migrations フォルダーの InitialCreate.cs から、もう 1 つは同じフォルダーの test.cs からです。

編集 1:
両方 のUpメソッドDateTime_InitialCreate.csDateTime_test.cs次の最初のエントリが含まれています。

CreateTable(
                "dbo.PayPal",
                c => new
                    {
                        Id = c.Int(nullable: false, identity: true),
                        ActionUrl = c.String(),
                        Cmd = c.String(),
                        Price = c.String(),
                        Interval = c.String(),
                        IntervalType = c.String(),
                        AutoRecurring = c.String(),
                        Business = c.String(),
                        Return = c.String(),
                        CancelUrl = c.String(),
                        NotifyUrl = c.String(),
                        PlanName = c.String(),
                        Amount = c.String(),
                        CurrencyCode = c.String(),
                    })
                .PrimaryKey(t => t.Id);

コードを調べると、両方のファイルはまったく同じように見えますが、まったく違いはありません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

私がこれを正しく読んでいる場合(そして私が間違っている場合は私を訂正してください)、あなたはテーブルがすでに存在するかどうかをチェックせずに両方の場所にテーブルを作成しようとしています。この場合、Update-Databaseを実行すると、両方のファイルで検出されるため、2回作成しようとします。その時点で、すでに存在しているためにエラーが発生します。

これが発生しないようにするには、両方のファイルにテーブルがまだ存在していないことを確認するためのチェックを入れる必要があります。

私がこれを間違って読んでいるかどうか教えてください。

于 2012-12-26T18:39:45.640 に答える