[英]Table not mapped using EF code first approach
我想先使用EF code first approach
。 我添加了數據庫,並生成了表。 然后我加了這個課
public class Invitation
{
[Key]
public int Id { get; set; }
[DefaultValue(false)]
public bool State { get; set; }
public string Mail { get; set; }
public string Tel { get; set; }
public string Name { get; set; }
public string Qr_code { get; set; }
}
我然后運行這些命令:
第二遷移
更新數據庫
第二類遷移的Up
和Down
方法為空! 並且沒有表添加到數據庫。
上下文
public class ApplicationContext: IdentityDbContext<ApplicationUser>
{
public ApplicationContext()
:base("DefaultConnection")
{
Database.SetInitializer<ApplicationContext>(new CreateDatabaseIfNotExists<ApplicationContext>());
}
public static ApplicationContext Create()
{
return new ApplicationContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
所以我要知道
好像您忘了告訴Entity Framework您要添加的新表( DbSet<Invitation>
)
添加此選項后,實體框架應分別添加要在“遷移”腳本中添加的表。
總之,您需要添加以下行:
public DbSet<Invitation> Invitations { get; set; }
和/或
public IDbSet<Invitation> Invitations { get; set; }
並運行另一個遷移腳本。
嘗試將以下內容添加到您的ApplicationContext類中
public DbSet<Invitation> Invitations { get; set; }
然后運行;
Enable-Migration
Add-Migration note_of_changes
Update-Database
我認為您需要創建一個初始遷移。 如果這是您的首次遷移(請注意,這將清除您現有的遷移歷史記錄,所以僅在您樂於丟棄現有的遷移歷史記錄時使用)
DbContext
刪除對新表的DbContext
)。 請注意, -IgnoreChanges
可能會使此步驟變得多余,但我不能肯定地說。 現在啟用遷移(在程序包管理器控制台中)
Enable-Migrations
然后創建您的初始遷移。 這將創建一個與您現有模式與空方法匹配的遷移
Add-Migration Initial –IgnoreChanges
Update-Database
然后使用新的表引用更新DbContext
並進行其他更改
Add-Migration MyChanges
Update-Database
那應該將更改應用到數據庫。 如果需要,可以在MSDN上獲取更多信息 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.