이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 22846|회답: 0

[.NET 코어] 【실전 전투】ASP.NET 코어의 엔티티 프레임워크 코어 입문 튜토리얼

[링크 복사]
게시됨 2019. 5. 6. 오후 3:38:54 | | | |
엔티티 프레임워크(EF) 코어는 인기 있는 엔티티 프레임워크 데이터 접근 기술의 경량, 확장 가능, 오픈 소스 및 크로스 플랫폼 버전입니다.

EF 코어는 객체-관계형 매퍼(O/RM)로 사용되어, .NET 개발자들이 .NET 객체가 있는 데이터베이스를 다룰 수 있어 데이터 접근 코드를 자주 작성하지 않아도 됩니다.

데이터베이스 제공자:하이퍼링크 로그인이 보입니다.

이 글에서 사용한 환경:

  • 오픈 툴즈: VS 2017
  • 닷넷 버전: 2.1.301
  • 데이터베이스: SQL Sever 2012


프로젝트 만들기



1: BaiDuPan.WebUI는 핵심 웹 애플리케이션을 만드는 ASP.NET 입니다;



2: BaiDuPan.DomainModel은 클래스 라이브러리(.NET Core)를 생성하는 것;

엔터티 프레임워크 핵심 참조 추가하기

vs2017로 개발되었습니다. NET Framework 프로젝트에서 ef 6를 추가할 때, 아래 그림과 같이 프로젝트를 우클릭하여 직접 추가할 수 있습니다:



하지만 EF 코어는 위에서 언급한 방식으로 추가할 수 없습니다.

PM 명령:


위 명령에 따라,프로그램은 필요한 의존성 패키지를 자동으로 추가합니다따라서 Microsoft.EntityFrameworkCore 패키지를 추가할 필요가 없습니다.

맥락 및 엔터티 모델 추가

영화 모델:


PanDb 데이터베이스 상황:

데이터베이스 문맥 의존성 주입을 추가하는 스타트업 클래스 (여기서는 WebUI에 DomainModel 참조를 추가해야 합니다):


위 코드는 프로젝트가 Microsoft.EntityFrameworkCore.SqlServer를 참조하도록 요구하지만, BaiDuPan.WebUI는 Microsoft.EntityFrameworkCore.SqlServer를 참조할 필요가 없는데, 왜 오류가 보고되지 않나요?

Microsoft.AspNetCore.App 패키지는 ASP.NET Core 2.1 이후 버전과 Entity Framework Core 2.1 이후 버전의 모든 기능을 포함하고 있습니다. Core 2.1 이후 버전의 기본 프로젝트 템플릿 ASP.NET 이 패키지를 사용합니다. Microsoft.AspNetCore.App 패키지는 ASP.NET Core 2.1 이후 버전과 Entity Framework Core 2.1 이후 애플리케이션에 권장됩니다.


appsettings.json 데이터베이스 연결 문자열을 구성하세요:


다음 오류로 프로젝트를 시작해 보세요:

오류 NU1107은 Microsoft.EntityFrameworkCore에서 버전 충돌을 감지합니다. 프로젝트에서 직접 패키지를 참조하면 이 문제가 해결됩니다.
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\BaiDuPan.WebUI.csproj 1       

그 이유는 두 프로젝트 간에 버전 충돌이 있기 때문입니다. BaiDuPan.WebUI에 ef core의 상위 버전을 설치해 보세요. 새로운 오류는 다음과 같습니다:

PM> install-package Microsoft.EntityFrameworkCore.SqlServer -version 2.2.4
  가져오기https://api.nuget.org/v3/registr ... qlserver/index.json
  캐시https://api.nuget.org/v3/registr ... qlserver/index.json
C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\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 已解决。
설치-패키지: NU1107: Microsoft.EntityFrameworkCore에서 버전 충돌이 감지됨. 프로젝트에서 직접 패키지를 참조하면 이 문제가 해결됩니다.
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).
위치 라인: 1 등장인물: 1
+ install-package Microsoft.EntityFrameworkCore.SqlServer -version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + 카테고리정보: NotSpecified: (:) [설치-패키지], 예외
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

install-package: 패키지 복원 실패. "BaiDuPan.WebUI"의 패키지 변경 사항 롤백.
위치 라인: 1 등장인물: 1
+ install-package Microsoft.EntityFrameworkCore.SqlServer -version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + 카테고리정보: NotSpecified: (:) [설치-패키지], 예외
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

도착 시간: 00:00:01.4208784
쪽지>



어떻게 해야 할까요? 해답은 다음과 같습니다:

다운그레이드, BaiDuPan.WebUI 프로젝트는 Microsoft.EntityFrameworkCore 2.1.1을 참조하므로, BaiDuPan.DomainModel 프로젝트에서 nuget 명령을 다음과 같이 다시 실행합니다:

이렇게 하면 모든 프로젝트가 동일한 EF Core 버전을 갖도록 보장합니다.

데이터베이스 초기화

데이터베이스와 테이블은 다음 이미지에서 보듯이 성공적으로 생성됩니다:



MovieController 컨트롤러 추가하세요

코드는 다음과 같습니다:

인덱스 메서드는 데이터베이스 Movie 테이블의 모든 데이터를 조회하는 것이고, Create 메서드는 새 데이터를 추가하는 것입니다. 아래 그림과 같이 Postman으로 데이터를 추가해 요청해 보겠습니다:

하이퍼링크 로그인이 보입니다.POST 요청


프로그램은 원활하게 실행되었고, 예외가 없어 삽입이 성공적이었음을 증명했으며, 접근 시도가 이루어졌습니다:하이퍼링크 로그인이 보입니다.아래 그림에 표시된 모든 데이터를 조회하세요:



수정과 삭제에 관해서는 말할 필요도 없습니다!

리소스:

엔터티 프레임워크 코어:하이퍼링크 로그인이 보입니다.

ASP.NET 코어:하이퍼링크 로그인이 보입니다.

(끝)


점수

참가자 수1MB+1 기여하다+1 무너지다 이유
관리자 + 1 + 1 정말 강력해!

모든 평점 보기





이전의:마스터가 있나요?
다음:쉼표 분리 문자열 방법
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com