簡體   English   中英

使用 Entity Framework Core 和 .NET 6 更新 SQLite 數據庫以反映對模型的更改

[英]Updating a SQLite Database to reflect a change to the model with Entity Framework Core and .NET 6

我創建了一個如下所示的 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]

在包管理器控制台中運行 Add-Migration AddUrl 命令。 Add-Migration 命令檢查自上次遷移以來的更改,並使用找到的任何更改構建新遷移。 我們可以給遷移一個名字; 在這種情況下,我們將遷移稱為“AddUrl”。 腳手架代碼是說我們需要在 dbo.Blogs 表中添加一個可以保存字符串數據的 Url 列。 如果需要,我們可以編輯腳手架代碼,但在這種情況下不需要這樣做。

在包管理器控制台中運行 Update-Database 命令。 此命令會將任何掛起的遷移應用到數據庫。 我們的 InitialCreate 遷移已經被應用,所以遷移只會應用我們新的 AddUrl 遷移。 提示:您可以在調用 Update-Database 時使用 –Verbose 開關來查看正在對數據庫執行的 SQL。

處理模型更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM