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全体を更新するには、以下のコマンドを使用します。詳細についてはリンク
データベースの最初の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 Connectionおよびローカル接続から更新するには
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
新しいコンテキストを作成するには
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>
1つのオプションは
Scaffold-DbContext
コマンドと-force
フラグを使用できます。これにより、scaffoldingに既存のモデルファイルを上書きさせることができます。
サンプルコマンド-
Scaffold-DbContext "<ConnectionString>" Microsoft.EntityFrameworkCore.SqlServer -t <tablename> -f
要件に従って、ConnectionStringとTableNameを置き換えます。