web-dev-qa-db-fra.com

Pouvons-nous échafauder DbContext à partir de tables sélectionnées d'une base de données existante

Comme dans les versions précédentes d'Entity Framework, est-il possible dans Entity Framework Core de rétroconcevoir uniquement les tables sélectionnées d'une base de données existante pour en créer des classes de modèle. Ce site ASP.NET officiel inverse les ingénieurs de la base de données entière. Dans le passé, comme indiqué dans ce didacticiel ASP.NET , en utilisant l'ancien EF, vous pouviez rétroconcevoir uniquement les tables/vues sélectionnées si vous le souhaitiez.

28
nam

On peut résoudre le problème en utilisant la commande dotnet ef dbcontext scaffold avec multiple -t (--table) paramètres. Il permet de spécifier toutes les tables nécessaires à l'import (échafaudage). La fonctionnalité est décrite initialement ici .

Il est possible de spécifier les tables exactes d'un schéma à utiliser lors de l'échafaudage de la base de données et d'omettre le reste. Les exemples de ligne de commande qui suivent montrent les paramètres nécessaires pour filtrer les tables.

CLI .NET Core:

dotnet ef dbcontext scaffold "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -o sakila -t actor -t film -t film_actor -t language -f  

Console du gestionnaire de packages dans Visual Studio:

Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir Sakila -Tables actor,film,film_actor,language -f   
35
Oleg

Force tag mettra à jour les modèles/fichiers sélectionnés existants dans le répertoire de sortie.

Scaffold-DbContext "Server=(localdb)\v11.0;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t User, Role -f
15
Lahiru Gamage

CLI .NET Core:

dotnet ef dbcontext scaffold "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -o sakila -t actor -t film -t film_actor -t language -f

Console du gestionnaire de packages dans Visual Studio:

Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir Sakila -Tables actor,film,film_actor,language -f

EF Core, MS SQL PM:

Scaffold-DbContext "server=PC\SQL2012;user=test;password=test123;database=student" Microsoft.EntityFrameworkCore.SqlServer -OutputDir student-Tables stu.names,stu.grades -f 

Pour plus de référence, visitez entityframework-core-scaffold

2
R J