データベース内の既存のテーブルに新しい列を追加しようとしています。クラスに新しいフィールドを指定し、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'へのアクセスが拒否されました。
ありがとうダニエル。それは有り難いです。 – Vinay