Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 22846|Respuesta: 0

[.NET Core] 【Combate Práctico】ASP.NET Tutorial introductorio del Core sobre el Marco de Entidades

[Copiar enlace]
Publicado en 6/5/2019 15:38:54 | | | |
Entity Framework (EF) Core es una versión ligera, extensible, de código abierto y multiplataforma de la popular tecnología de acceso a datos Entity Framework.

EF Core puede usarse como un mapador objeto-relacional (O/RM) para que los desarrolladores .NET puedan trabajar con bases de datos con objetos .NET y así no tener que escribir la mayor parte del código de acceso a datos con frecuencia.

Proveedor de bases de datos:El inicio de sesión del hipervínculo es visible.

El entorno utilizado en este artículo:

  • Herramientas abiertas: VS 2017
  • Versión dotnet: 2.1.301
  • Base de datos: SQL Server 2012


Crea un proyecto



1: BaiDuPan.WebUI es un ASP.NET para crear una aplicación web Core;



2: BaiDuPan.DomainModel es crear una biblioteca de clases (.NET Core);

Añadir una referencia Núcleo del Entity Framework

Desarrollado con vs2017. Proyecto NET Framework, al añadir ef 6, puedes añadirlo directamente haciendo clic derecho en el proyecto, como se muestra en la figura de abajo:



Sin embargo, no se pueden añadir núcleos EF de la forma anterior.

Comando PM:


Por el orden anterior,El programa añade automáticamente los paquetes de dependencias requeridosAsí que no es necesario añadir el paquete Microsoft.EntityFrameworkCore.

Añadir modelos de contexto y entidades

Modelos de películas:


Contexto de la base de datos PanDb:

Clase Startup, que añade inyección de dependencias en el contexto de la base de datos (Aquí necesitas añadir una referencia DomainModel a la interfaz web):


El código anterior requiere que el proyecto haga referencia a Microsoft.EntityFrameworkCore.SqlServer, pero BaiDuPan.WebUI no necesita referenciar Microsoft.EntityFrameworkCore.SqlServer, ¿por qué no se reporta un error?

Microsoft.AspNetCore.App paquete incluye todas las características de ASP.NET Core 2.1 y posteriores y de Entity Framework Core 2.1 y posteriores. Las plantillas de proyectos predeterminadas para ASP.NET Core 2.1 y posteriores utilizan este paquete. Microsoft.AspNetCore.App paquetes se recomiendan para aplicaciones con ASP.NET Core 2.1 y posteriores, y Entity Framework Core 2.1 y posteriores.


appsettings.json Configurar la cadena de conexión a la base de datos:


Intenta iniciar el proyecto con el siguiente error:

El error NU1107 detecta un conflicto de versiones en Microsoft.EntityFrameworkCore. Referenciar el paquete directamente desde el proyecto resuelve este problema.
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 razón es que hay un conflicto de versiones entre ambos proyectos; intenta instalar una versión superior de ef core en BaiDuPan.WebUI, el nuevo error es el siguiente:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Versión 2.2.4
  OBTENERhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Revertiendo el paquete de 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: Conflicto de versiones detectado en Microsoft.EntityFrameworkCore. Referenciar el paquete directamente desde el proyecto resuelve este problema.
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).
Línea de localización: 1 Personajes: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -versión 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Exception
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommand

Install-Package: Restauración de paquetes fallida. Revertir los cambios de paquetes para "BaiDuPan.WebUI".
Línea de localización: 1 Personajes: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -versión 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Exception
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommand

Hora aproximada: 00:00:01.4208784
PM>



¿Qué hacer? La solución es la siguiente:

En retrogradación, el proyecto BaiDuPan.WebUI hace referencia a Microsoft.EntityFrameworkCore 2.1.1, así que reejecutamos el comando nuget en el proyecto BaiDuPan.DomainModel, de la siguiente manera:

De este modo, garantizamos que todos los proyectos tengan la misma versión EF Core.

Inicializar la base de datos

La base de datos y la tabla se crean con éxito como se muestra en la siguiente imagen:



Añadir el controlador MovieController

El código es el siguiente:

El método Index es consultar todos los datos en la tabla de Películas de la base de datos, y el método Create es añadir nuevos datos; intentemos añadir un dato y solicitarlo con el cartero, como se muestra en la figura de abajo:

El inicio de sesión del hipervínculo es visible.Solicitud POST


El programa pudo ejecutarse sin problemas, no se hicieron excepciones, demostrando que la inserción fue exitosa y se intentó el acceso:El inicio de sesión del hipervínculo es visible.Consulta todos los datos como se muestra en la figura siguiente:



En cuanto a modificaciones y eliminaciones, ¡no hace falta decirlo!

Recursos:

Núcleo del Marco de Entidades:El inicio de sesión del hipervínculo es visible.

ASP.NET Núcleo:El inicio de sesión del hipervínculo es visible.

(Fin)


Puntuación

Número de participantes1MB+1 contribuir+1 Colapso razón
Admin + 1 + 1 ¡Muy poderoso!

Ver todas las valoraciones





Anterior:¿Hay algún máster?
Próximo:Método de la cadena de separación de comas
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com