2017-05-02 14 views
1

データベース内の既存のテーブルに新しい列を追加しようとしています。クラスに新しいフィールドを指定し、Add-Migrationコマンドを実行していますが、 AddColumnの代わりにCreateTableメソッドを使用してテーブル全体の移行クラス。以下は、クラスおよび生成されたマイグレーションクラスコードです。Add-MigrationがEntity Frameworkコアの既存のテーブルに列を追加しない

public class UserSetup 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public bool Age{ get; set; } // New Field Added 

    } 

しかし、以下に示すように、新しいフィールドのためにそれは完全なテーブルのためのマイグレーションクラスを作成します

public partial class AddUserSetup_1 : Migration 
    { 
     protected override void Up(MigrationBuilder migrationBuilder) 
     { 
      migrationBuilder.CreateTable(
       name: "UserSetup", 
       columns: table => new 
       { 
        Id = table.Column<int>(nullable: false) 
         .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), 
        Name= table.Column<string>(nullable: false), 
        Age= table.Column<int>(nullable: false), 
       }, 
       constraints: table => 
       { 
        table.PrimaryKey("PK_UserSetup", x => x.Id); 
       }); 

     } 

     protected override void Down(MigrationBuilder migrationBuilder) 
     { 
      migrationBuilder.DropTable(
       name: "UserSetup"); 
     } 
    } 

また、それは私に次のエラーを与えているが、でも、マイグレーションクラスを作成なっているアドインの移行に。

System.UnauthorizedAccessException: 'C:¥Projects¥PSM¥Portal¥src¥Portal¥Migrations¥ApplicationDbContextModelSnapshot.cs'へのアクセスが拒否されました。

答えて

0

TFSを使用している場合は、チェックアウトして 'ApplicationDbContextModelSnapshot.cs'ファイルを編集してください。それはうまく動作します!

+0

ありがとうダニエル。それは有り難いです。 – Vinay

関連する問題