簡體   English   中英

如何在 .net core razor 頁面中向遷移添加額外屬性而不刪除 EF 核心中的先前遷移或數據庫

[英]How to add Extra properties to migration in .net core razor pages without deleting the previous migration or database in EF core

我是 Asp.Net 核心的新手,正在制作一個項目 Asp.Net 核心剃須刀頁面。 所以我在我的項目中使用 EF 核心作為注冊模塊我想添加我自己的額外字段以及 EF 核心提供的功能。所以我創建了一個帶有附加字段的用戶類。 並添加了從包管理器控制台遷移。 並更新了數據庫。但問題是當我添加 1 個屬性並嘗試遷移它時給出錯誤。所以我所做的是我從遷移文件夾中刪除了遷移並刪除了數據庫並使用新屬性生成了遷移. 但當然這不是一個好方法,請任何人都可以在不刪除數據庫的情況下提出正確的方法。

ApplicationUser.cs 文件

 public class ApplicationUser : IdentityUser
{
    public string FullName { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string PostalCode { get; set; }

}

使用代碼優先方法進行更新幾乎不需要數據庫優先方法。

最初,您必須為項目啟用遷移

Enable-Migrations -ContextTypeName DBNAME.StoreContext

這將使用 Configuration.cs 文件創建一個遷移文件夾。 接下來,我們需要運行遷移。 這是您需要向現有數據庫添加額外步驟的地方。 如果我們現在創建一個遷移,它將嘗試將我們所有的實體添加到數據庫中。 這將不起作用,因為數據庫中已經存在其他表,因此我們需要創建一個初始空白遷移,然后我們將能夠為任何新更改添加遷移。 要創建空白遷移,請執行此命令

Add-Migration InitialCreate -IgnoreChanges

該命令的關鍵部分是 -IgnoreChanges 標志,它確保創建的遷移實際上什么都不做。 運行它將向數據庫中的遷移表添加一個條目,從而創建其原始模式的快照。

接下來,運行 update-database 命令以使用初始遷移更新現有數據庫。 現在將在DBNAME數據庫中創建一個新的遷移表。

在此之后,您可以添加屬性,然后執行此語句Add-Migration add_classname_propertyname

運行之后, update-database命令就可以開始了。

暫無
暫無

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

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