Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 22846|Resposta: 0

[.NET Core] 【Combate Prático】ASP.NET tutorial introdutório do Core para a Estrutura de Entidades

[Copiar link]
Publicado em 06/05/2019 15:38:54 | | | |
O Entity Framework (EF) Core é uma versão leve, extensível, de código aberto e multiplataforma da popular tecnologia de acesso a dados Entity Framework.

O EF Core pode ser usado como um mapeador objeto-relacional (O/RM) para que desenvolvedores .NET possam trabalhar com bancos de dados com objetos .NET e assim não precisem escrever a maior parte do código de acesso a dados com frequência.

Provedor de Banco de Dados:O login do hiperlink está visível.

O ambiente utilizado neste artigo:

  • Ferramentas Abertas: VS 2017
  • Versão dotnet: 2.1.301
  • Banco de Dados: SQL Server 2012


Crie um projeto



1: BaiDuPan.WebUI é uma ASP.NET para criar uma aplicação web Core;



2: BaiDuPan.DomainModel serve para criar uma biblioteca de classes (.NET Core);

Adicionar uma referência Core do Entity Framework

Desenvolvido com vs2017. Projeto NET Framework, ao adicionar ef 6, você pode adicioná-lo diretamente clicando com o botão direito no projeto, como mostrado na figura abaixo:



No entanto, núcleos EF não podem ser adicionados da forma acima.

Comando PM:


Pela ordem acima,O programa adiciona automaticamente os pacotes de dependência necessáriosPortanto, não há necessidade de adicionar o pacote Microsoft.EntityFrameworkCore.

Adicionar modelos de contexto e entidade

Modelos de Filme:


Contexto do banco de dados PanDb:

Classe Startup, que adiciona injeção de dependência de contexto de banco de dados (Aqui você precisa adicionar uma referência DomainModel à WebUI):


O código acima exige que o projeto faça referência ao Microsoft.EntityFrameworkCore.SqlServer, mas o BaiDuPan.WebUI não precisa referenciar o Microsoft.EntityFrameworkCore.SqlServer, por que ele não é reportado como erro?

Microsoft.AspNetCore.App pacote inclui todos os recursos do Core 2.1 e posteriores ASP.NET Entity Framework Core 2.1 e posteriores. Modelos padrão de projeto para ASP.NET Core 2.1 e posteriores usam este pacote. Microsoft.AspNetCore.App pacotes são recomendados para aplicações com ASP.NET Core 2.1 e posteriores e Entity Framework Core 2.1 e posteriores.


appsettings.json Configure a cadeia de conexão do banco de dados:


Tente iniciar o projeto com o seguinte erro:

O erro NU1107 detecta um conflito de versões no Microsoft.EntityFrameworkCore. Referenciar o pacote diretamente do projeto resolve esse 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       

O motivo é que há um conflito de versões entre os dois projetos; tente instalar uma versão superior do ef core no BaiDuPan.WebUI, o novo erro é o seguinte:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Versão 2.2.4
  OBTERhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Revertendo o pacote 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: Conflito de versão detectado no Microsoft.EntityFrameworkCore. Referenciar o pacote diretamente do projeto resolve esse 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).
Linha de Localização: 1 Personagens: 1
+ Pacote de instalação Microsoft.EntityFrameworkCore.SqlServer -versão 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoriaInformação : NotSpecified: (:) [Install-Package], Exceção
    + TotalQualificadoErroId: NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommand

Install-Package: Restauração do pacote falhada. Revertendo as alterações de pacotes para "BaiDuPan.WebUI".
Linha de Localização: 1 Personagens: 1
+ Pacote de instalação Microsoft.EntityFrameworkCore.SqlServer -versão 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoriaInformação : NotSpecified: (:) [Install-Package], Exceção
    + TotalQualificadoErroId: NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommandCommand

Horário Aproximado: 00:00:01.4208784
PM>



O que fazer? A solução é a seguinte:

Downgrade, o projeto BaiDuPan.WebUI faz referência ao Microsoft.EntityFrameworkCore 2.1.1, então reexecutamos o comando nuget no projeto BaiDuPan.DomainModel, da seguinte forma:

Dessa forma, garantimos que todos os projetos tenham a mesma versão do EF Core.

Inicializar o banco de dados

O banco de dados e a tabela são criados com sucesso, conforme mostrado na imagem a seguir:



Adicionar o controlador MovieController

O código é o seguinte:

O método Index é consultar todos os dados na tabela Movie do banco de dados, e o método Create é adicionar novos dados; vamos tentar adicionar um dado e solicitá-lo com o carteiro, como mostrado na figura abaixo:

O login do hiperlink está visível.Pedido POST


O programa conseguiu executar suavemente, nenhuma exceção foi lançada, provando que a inserção foi bem-sucedida, e o acesso foi tentado:O login do hiperlink está visível.Consulte todos os dados conforme mostrado na figura abaixo:



Quanto a modificações e deleções, nem precisa dizer!

Recursos:

Núcleo do Framework da Entidade:O login do hiperlink está visível.

ASP.NET Núcleo:O login do hiperlink está visível.

(Fim)


Pontuação

Número de participantes1MB+1 contribuir+1 Colapso razão
admin + 1 + 1 Muito poderoso!

Veja todas as classificações





Anterior:Existem mestrados?
Próximo:Método da corda de separação por vírgulas
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com