web-dev-qa-db-fra.com

Mettre à jour la classe d'entité dans ASP.NET Core Entity Framework

J'ai créé le modèle à partir d'une base de données existante en utilisant Entity Framework dans ASP.NET Core.

Voici le modèle de la table 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; }
}

Cependant, j'ai changé le type de données MarketId en int dans la base de données. Maintenant, je veux mettre à jour le modèle.

J'ai trouvé un lien mais ce lien crée à nouveau le modèle entier https://docs.Microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

Comment puis-je mettre à jour le modèle sans créer de nouveau modèle et utiliser la chaîne de connexion dans appsettings.json?

20
San Jaisy

Pour mettre à jour dbcontext entier, utilisez la commande ci-dessous. lien pour plus de détails

"La construction a échoué" sur la base de données 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

Pour mettre à jour à partir d'Azure Connection et de la connexion locale

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

Pour créer le nouveau contexte

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>
8
San Jaisy

Une option est-

Vous pouvez utiliser Scaffold-DbContext commande avec -force drapeau. De cette façon, vous pouvez forcer l'échafaudage à remplacer les fichiers de modèle existants.

exemple de commande -

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

Remplacez ConnectionString TableName selon vos besoins.

22
Sanket