2017-04-12 10 views
0

最近、クラス(通知)の一部のプロパティを変更しました。 私はupdate-databaseコマンドを実行しましたが、テーブル 'xxx.dbo.notifications'が存在しないというエラーが発生しました。MySqlデータベースのupdate-databaseを実行中にエラーが発生しました:テーブル 'xxx'が存在しません

テーブルはまだありますが、なぜこのエラーが発生しますか?

編集:移行コード

public override void Up() 
    { 
     DropForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments"); 
     DropIndex("dbo.Notifications", new[] { "PaymentId" }); 
     AddColumn("dbo.Notifications", "ProductOptionId", c => c.Int()); 
     AlterColumn("dbo.Notifications", "PaymentId", c => c.Int()); 
     CreateIndex("dbo.Notifications", "PaymentId"); 
     CreateIndex("dbo.Notifications", "ProductOptionId"); 
     AddForeignKey("dbo.Notifications", "ProductOptionId", "dbo.ProductOptions", "Id"); 
     AddForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments", "Id"); 
    } 

    public override void Down() 
    { 
     DropForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments"); 
     DropForeignKey("dbo.Notifications", "ProductOptionId", "dbo.ProductOptions"); 
     DropIndex("dbo.Notifications", new[] { "ProductOptionId" }); 
     DropIndex("dbo.Notifications", new[] { "PaymentId" }); 
     AlterColumn("dbo.Notifications", "PaymentId", c => c.Int(nullable: false)); 
     DropColumn("dbo.Notifications", "ProductOptionId"); 
     CreateIndex("dbo.Notifications", "PaymentId"); 
     AddForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments", "Id", cascadeDelete: true); 
    } 

編集:私は、エラーが発生する前に変更を元に戻します。モデルにProductOptionIdプロパティーを追加し、マイグレーションを追加し、データベースを正常に更新しました。

PaymentIdプロパティをnull可能に変更しているときに問題が発生しているようです。

それは意味がありますか?

+1

に移行した同じデータベースに審判されていることを確認した後、データベースに作成されていることを確認しますms sql serverです。 – Shadow

+0

@Shadowあなたはそれをどう思いますか? –

+0

'xxx.dbo.notifications' - MySQLでは、' xxx.notifications'テーブル、または 'xxx.dbo'テーブルを持つことができますが、パスに3つの要素を持つことはできません。テーブルはデータベース(スキーマ)にのみ関連しています。 – Shadow

答えて

0

1-表があなたの移行
2-コンテキストは、あなたがこの本は、ように見える、MySQLのように見えない

+0

テーブルはすでに存在しています。私はいくつかのプロパティを変更し、新しいプロパティを追加しました。私はただ一つの文脈でも働いています。 –

+0

どのようにプロパティを追加しましたか? モデルクラスから移行した後、またはデータベース管理 から直接アクセスした場合、アプリケーションを実行する前にコンテキスト接続文字列が動的に変更されないようにすることを意味します。 –

+0

モデルクラスからプロパティを追加しました。移行。私はデータベース管理からそれに触れることはありませんので、私は何の問題も生じません。 –

関連する問題