更新ASP.NET核心實體框架中的實體類

asp.net-core c# entity-framework-core

我使用ASP.NET Core中的Entity Framework從現有數據庫創建了模型。

這是Market表的模型

public partial class Market
{
        public Guid MarketId { get; set; }
        public string City { get; set; }
        public string CityF { get; set; }
        public string Name { get; set; }
        public string NameF { get; set; }
        public int SortOrder { get; set; }
        public bool IsActive { get; set; }
}

但是,我已將MarketId數據類型更改為數據庫中的int 。現在我想更新模型。

找到一些鏈接,但此鏈接再次創建整個模型https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

如何在不創建新模型和使用appsettings.json的連接字符串的情況下更新模型?

一般承認的答案

要更新整個dbcontext,請使用以下命令。鏈接了解更多詳情

Database First Scaffold-DbContext上的“構建失敗”

Scaffold-DbContext -Connection "Server=(local);Database=DefenderRRCart;Integrated Security=True;Trusted_Connection=True;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir RRStoreContext.Models -context RRStoreContext -Project RR.DataAccess -force

從Azure連接和本地連接更新

Scaffold-DbContext "Server=<Server Name>,1433;Initial Catalog=<Database Name>;Persist Security Info=False;User ID=<user id>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entity -context <Context Name> -Project <project Name> -force

創建新的Context

Scaffold-DbContext "Server=<Server Name>,1433;Initial Catalog=<Database Name>;Persist Security Info=False;
        User ID=<User Id>;Password=<Password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection
        Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir <Dir Name>

熱門答案

一種選擇是 -

您可以將Scaffold-DbContext命令與-force標誌一起使用。這樣,您可以強制腳手架覆蓋現有的模型文件。

示例命令 -

Scaffold-DbContext "<ConnectionString>" Microsoft.EntityFrameworkCore.SqlServer -t <tablename> -f

根據您的要求替換ConnectionString和TableName。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow