[英]add table codefirst migration entity framework
遷移期間不會創建新表。
遷移本身似乎是創建的
public partial class _222 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "ToDos",
columns: table => new
{
Id = table.Column<string>(nullable: false),
Name = table.Column<string>(nullable: true),
Body = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ToDos", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ToDos");
}
}
但是當我寫 Update-Database 表時沒有創建。
應用程序數據庫上下文
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
Database.EnsureCreated();
}
public DbSet<ToDo> ToDos { get; set; }
待辦事項
public class ToDo
{
[Key]
public string Id { get; set; }
public string Name { get; set; }
public string Body { get; set; }
}
來自包管理器控制台中的錯誤
Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [AspNetRoles] (
[Id] nvarchar(450) NOT NULL,
[Name] nvarchar(256) NULL,
[NormalizedName] nvarchar(256) NULL,
[ConcurrencyStamp] nvarchar(max) NULL,
CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id])
);
There is already an object named 'AspNetRoles' in the database.
錯誤信息非常清楚。 它正在嘗試創建一個名為 AspNetRoles 的表,該表已存在於數據庫中。 由於這不是您的遷移正在創建的表,我希望這是需要首先應用的先前遷移。 可能該表是手動創建的,這就是遷移歷史記錄顯示仍需要應用遷移的原因。 如果它是一個開發數據庫,也許您可以刪除該表並允許應用遷移。 另一種解決方法是找到適用的遷移並注釋掉 Up 方法的內容。 不過,您需要檢查現有表的架構是否正確,以防發生任何更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.