San*_*isy 22 c# entity-framework-core asp.net-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; }
}
Run Code Online (Sandbox Code Playgroud)
但是,我已将MarketId数据类型更改int为数据库中.现在我想更新模型.
找到一些链接,但此链接再次创建整个模型https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
如何在不创建新模型和使用连接字符串的情况下更新模型appsettings.json?
San*_*ket 25
一种选择是 -
您可以使用Scaffold-DbContext带有-force标志的命令.这样,您可以强制脚手架覆盖现有的模型文件.
示例命令 -
Scaffold-DbContext "<ConnectionString>" Microsoft.EntityFrameworkCore.SqlServer -t <tablename> -f
Run Code Online (Sandbox Code Playgroud)
根据您的要求替换ConnectionString和TableName.
要更新整个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
Run Code Online (Sandbox Code Playgroud)
从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
Run Code Online (Sandbox Code Playgroud)
创建新的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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23446 次 |
| 最近记录: |