Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22846|Répondre: 0

[.NET Core] 【Combat Pratique】ASP.NET tutoriel d’introduction au Entity Framework Core

[Copié le lien]
Publié sur 06/05/2019 15:38:54 | | | |
Entity Framework (EF) Core est une version légère, extensible, open source et multiplateforme de la populaire technologie d’accès aux données Entity Framework.

EF Core peut être utilisé comme un mapper objet-relationnel (O/RM) afin que les développeurs .NET puissent travailler avec des bases de données avec des objets .NET afin de ne pas avoir à écrire fréquemment la plupart du code d’accès aux données.

Fournisseur de base de données :La connexion hyperlientérée est visible.

L’environnement utilisé dans cet article :

  • Outils ouverts : VS 2017
  • version dotnet : 2.1.301
  • Base de données : SQL Server 2012


Créer un projet



1 : BaiDuPan.WebUI est un ASP.NET pour créer une application web centrale ;



2 : BaiDuPan.DomainModel sert à créer une bibliothèque de classes (.NET Core) ;

Ajouter une référence centrale du cadre d’entité

Développé avec vs2017. NET Framework, lorsque vous ajoutez EF 6, vous pouvez l’ajouter directement en faisant un clic droit sur le projet, comme montré dans la figure ci-dessous :



Cependant, les cœurs EF ne peuvent pas être ajoutés de la manière ci-dessus.

Commande PM :


Par l’ordre ci-dessus,Le programme ajoute automatiquement les packages de dépendances requisIl n’est donc pas nécessaire d’ajouter le paquet Microsoft.EntityFrameworkCore.

Ajouter des modèles contextuels et d’entités

Mannequins de films :


Contexte de la base de données PanDb :

Startup class, qui ajoute l’injection de dépendance contextuelle de base de données (Ici, il faut ajouter une référence DomainModel à l’interface Web):


Le code ci-dessus exige que le projet fasse référence à Microsoft.EntityFrameworkCore.SqlServer, mais BaiDuPan.WebUI n’a pas besoin de référencer Microsoft.EntityFrameworkCore.SqlServer, pourquoi n’est-il pas signalé d’erreur ?

Microsoft.AspNetCore.App package inclut toutes les fonctionnalités de ASP.NET Core 2.1 et versions ultérieures ainsi que d’Entity Framework Core 2.1 et ultérieures. Les modèles de projet par défaut pour ASP.NET Core 2.1 et ultérieurs utilisent ce paquet. Microsoft.AspNetCore.App packages sont recommandés pour les applications avec ASP.NET Core 2.1 et versions ultérieures, ainsi que Entity Framework Core 2.1 et ultérieures.


appsettings.json Configurez la chaîne de connexion à la base de données :


Essayez de commencer le projet avec l’erreur suivante :

L’erreur NU1107 détecte un conflit de version dans Microsoft.EntityFrameworkCore. Référencer directement le package depuis le projet résout ce problème.
BaiDuPan.WebUI -> BaiDuPan.DomainModel -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4)
BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 & < 2.2.0).        BaiDuPan.WebUI C :\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj 1       

La raison est qu’il y a un conflit de versions entre les deux projets, essayez d’installer une version supérieure du core EF dans BaiDuPan.WebUI, la nouvelle erreur est la suivante :

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  AVOIRhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Retour en arrière du package C :\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj...
NU1608: 检测到的包版本在依赖项约束之外: Microsoft.AspNetCore.App 2.1.1 需要 Microsoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0),但版本 Microsoft.EntityFrameworkCore.SqlServer 2.2.4 已解决。
Install-Package : NU1107 : Conflit de version détecté dans Microsoft.EntityFrameworkCore. Référencer directement le package depuis le projet résout ce problème.
BaiDuPan.WebUI -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4)
BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 & < 2.2.0).
Ligne de lieu : 1 Personnages : 1
+ Install-package Microsoft.EntityFrameworkCore.SqlServer -version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified : (:) [Install-Package], Exception
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommandeInstallPackage

Install-Package : Échec de la restauration du paquet. Retour en arrière des changements de paquet pour « BaiDuPan.WebUI ».
Ligne de lieu : 1 Personnages : 1
+ Install-package Microsoft.EntityFrameworkCore.SqlServer -version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified : (:) [Install-Package], Exception
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommandeInstallPackage

Heure : 00:00:01.4208784
PM >



Que faire ? La solution est la suivante :

Rétrogradation, le projet BaiDuPan.WebUI fait référence à Microsoft.EntityFrameworkCore 2.1.1, donc nous réexécutons la commande nuget dans le projet BaiDuPan.DomainModel, comme suit :

De cette façon, nous garantissons que tous les projets ont la même version EF Core.

Initialiser la base de données

La base de données et la table sont créées avec succès comme montré sur l’image suivante :



Ajouter le contrôleur MovieController

Le code est le suivant :

La méthode Index consiste à interroger toutes les données dans la table Movie de la base de données, et la méthode Create consiste à ajouter de nouvelles données, essayons d’ajouter une donnée et de la demander à Postman, comme montré dans la figure ci-dessous :

La connexion hyperlientérée est visible.Demande POST


Le programme a pu s’exécuter sans problème, aucune exception n’a été faite, prouvant que l’insertion a réussi, et l’accès a été tenté :La connexion hyperlientérée est visible.Interrogez toutes les données comme montré dans la figure ci-dessous :



En ce qui concerne les modifications et suppressions, cela va sans dire !

Ressources:

Cœur du cadre d’entité :La connexion hyperlientérée est visible.

ASP.NET Core :La connexion hyperlientérée est visible.

(Fin)


Score

Nombre de participants1MO+1 contribuer+1 Effondrement raison
Admin + 1 + 1 Très puissant !

Voir toutes les notes





Précédent:Existe-t-il des masters ?
Prochain:Méthode de la chaîne de séparation par virgule
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com