2016-05-01 10 views
0

ASP.NET MVC Webサイトを開発しています。データベースと対話するために、私はEntity Frameworkをコードで最初に使用しています。しかし、今では、新しいテーブルとエンティティをモデルとデータベースに追加/移行する際に問題があります。下記の私のシナリオをご覧ください。 コード内に既存のテーブルがあるため、asp.netで新しいテーブルを移行できません。

は、最初に私はエンティティクラス

public class Category 
    { 
     public int Id { get; set; } 
     [Required] 
     [MaxLength(40)] 
     public String Name { get; set; } 
     [MaxLength(60)] 
     public String MmName { get; set; } 
    } 

を作成した。しかし、このエンティティのために、私は手動でデータベースを作成しました。私は移行コマンドを使用しませんでした。その後、私は、アプリを実行し、内蔵のID登録システムを使用してユーザーを登録します。データベーステーブルが正常に作成されます。それから私は開発を続けました。私はうまくいっていた。 Categoryを扱うすべてのものを開発した後、別のエンティティとデータベーステーブルを追加しようとしました。

だから私はこの

public class Region 
    { 
     public int Id { get; set; } 
     [Required] 
     [MaxLength(50)] 
     public String Name { get; set; } 
     [MaxLength(70)] 
     public String MmName { get; set; } 
     [MaxLength(30)] 
     public String GeoLocation { get; set; } 
     [MaxLength(200)] 
     public String Description { get; set; } 
     [MaxLength(250)] 
     public String MmDescription { get; set; } 
    } 

のようなエンティティクラスを作成した後、私はデータベース

enable-migrations 
add-migration "CreateRegion" 
update-database 

を更新するには、次のコマンドを実行して、私はここに、このエラーに

を得た 'は既に指定されたオブジェクトでありますデータベース内の「カテゴリ」を選択します。

これは私のinitiaizerクラスIは、コマンドラインを使用してデータベースを更新するにはどうすればよい

public class ContextInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<AyarDbContext> 
    { 
     protected override void Seed(AyarDbContext context) 
     { 
     } 
    } 

のですか?コードを最初に実行しているので、コマンドラインから移行したい。

答えて

0

私はこの時点では二つのオプションを参照してください。

1)データベースからテーブルを削除し、移行を再実行します。両方のテーブルが作成されます。

2)マイグレーションファイルを変更して、カテゴリテーブルを作成しないようにします。これは、Code Firstの動作方法に反するが、既存のテーブルを使用することで、すでにその状況になっている。

関連する問題