我創建了一個如下所示的 dbcontext:
public class DatabaseContext : DbContext
{
public DbSet<Author> Authors { get; set; }
public DbSet<Book> Books { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Data Source=E:\Portfolio\FullStack\HomeLibraryManager\Database\Library.db;");
}
}
我像這樣初始化它:
using (var context = new DatabaseContext())
{
context.Database.EnsureCreated();
var books = context.Books.ToList();
}
我想在我的Book類中添加一個變數,但是如何讓資料庫表將該新變數添加為列。
我曾希望這EnsureCreated()會確保在需要時更新表格列,但似乎沒有。
任何幫助都會很棒,
謝謝
編輯解決方案:我使用了 context.Database.Migrate(); 而不是 EnsureCreated 并運行 dotnet-ef 遷移首先添加 [MigrationNameHere]
uj5u.com熱心網友回復:
在包管理器控制臺中運行 Add-Migration AddUrl 命令。Add-Migration 命令檢查自上次遷移以來的更改,并使用找到的任何更改構建新遷移。我們可以給遷移一個名字;在這種情況下,我們將遷移稱為“AddUrl”。腳手架代碼是說我們需要在 dbo.Blogs 表中添加一個可以保存字串資料的 Url 列。如果需要,我們可以編輯腳手架代碼,但在這種情況下不需要這樣做。
在包管理器控制臺中運行 Update-Database 命令。此命令會將任何掛起的遷移應用到資料庫。我們的 InitialCreate 遷移已經被應用,所以遷移只會應用我們新的 AddUrl 遷移。提示:您可以在呼叫 Update-Database 時使用 –Verbose 開關來查看正在對資料庫執行的 SQL。
處理模型更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/495276.html
