inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tìm hiểu ASP.NET CORE trong 14 ngày

Database-First 방식으로 MS SQL View도 객체화해서 가져오는 방법

Đã giải quyết

394

vyrudaks

3 câu hỏi đã được viết

0

안녕하세요^^

혹시 Database-First 방식으로 MS SQL View도 객체화해서 자동으로 모델 엔티티 형식으로 가져올수 있는 방법이 있을까요?

.NET C#

Câu trả lời 3

0

dotnet

vyrudaks님, 도움이 되셨다니 저도 기쁩니다.

즐거운 코딩하세요!

0

vyrudaks

말씀 감사합니다! 많은 도움이 되었습니다 

0

dotnet

vyrudaks님, 반갑습니다.

물론, 가져올 수 있는 방법이 있습니다.

⭐ 간단히 말씀드리면, .Net Core 3.x부터 지원되는 HasNoKeyToView 메서드를 사용하면 가능합니다.

강의에서 진행했던 NetCore 솔루션과 관련해 말씀드리겠습니다. (스압에 주의하세요.)

(1) 먼저, NetCore.Data 프로젝트의 Classes 폴더에 uvwUserEmail 클래스를 생성하세요.

public class uvwUserEmail {

        public string UserId { get; set; }

        public string UserEmail { get; set; }

}

(2)-1. 그 다음에, NetCore.Services 프로젝트의 Data 폴더에 있는 DBFirstDbContext의 OnModelCreating 메서드에 다음 내용을 추가하세요.

modelBuilder.Entity<uvwUserEmail >().HasNoKey();

modelBuilder.Entity<uvwUserEmail >().ToView(name: "uvwUserEmail ");

Db View는 Primary Key가 없기 때문에 HasNoKey 메서드를 지정하고, ToView 메서드를 통해 뷰이름을 정하면서 uvwUserEmail이 뷰로 사용될 클래스라는 것을 알려주는 용도입니다.

(2)-2. 그런데, 현재 NetCore.Services 프로젝트가 .Net Core 2.1버전이기 때문에 Project File을 열어서 TargetFramework를 netcoreapp2.1에서 netcoreapp3.1로 변경하세요.

(2)-3. 또한, PackageReference도 Microsoft.EntityFrameworkCore와 Microsoft.EntityFrameworkCore.SqlServer에 대해 각각 3.1.11 버전으로 업그레이드해 주세요.

(HasNoKey와 ToView 메서드가 3.x 버전에서 추가된 메서드이기 때문에 이러한 작업들이 필요합니다.)

(2)-4. DBFirstDbContext 내부에 다음의 변수도 추가해 주세요.

public virtual DbSet<uvwUserEmail> UserEmails { get; set; }

(3) SQL Server Management Studio를 열어서 DBFirstDB 데이터베이스에 다음과 같이 dbo.uvwUserEmail 뷰를 생성합니다.

CREATE VIEW dbo.uvwUserEmail

AS

SELECT UserId, UserEmail

FROM dbo.[User]

GO

(4) 이제, 마지막으로 UserService 클래스에 아래의 메서드를 추가한 후에 테스트해 주세요.

public List<uvwUserEmail> GetUserEmails() {

        return _context.UserEmails.FromSqlRaw("SELECT UserId, UserEmail FROM dbo.uvwUserEmail")

                           .ToList();

}

이렇게 한 후에 GetUserEmails() 메서드를 호출해서 사용하시면 됩니다.

이상입니다.

즐거운 하루되세요.

DB Azure 활용 방법 문의 & UI 구성

0

121

1

Email Unique Index 지정 update 오류

0

147

2

03 보고 있는데 VS2022로 뭘 어째야 하는건지 감이 안와요... 인터페이스가 너무 달라요

0

323

1

ADO.NET 엔터티 데이터 모델이 없어요

0

617

1

두번째 강의 의존성주입에서 startup 클래스가 없습니다.

0

701

2

Login 뷰에서 MembershipController연결 방식문의

0

370

1

14일만에 배우는 ASP.NET CORE 질문

1

411

1

안녕하세요 강사님.

0

375

2

안녕하세요.

0

355

1

질문이 있습니다.

0

331

1

AccessFailedCount 추가 시 NULL값 문제

0

424

1

마이그레이션 완료 후 Update DB 에서 에러가 납니다 ㅠ

0

859

2

시작페이지 바꿀수있을까요?

0

254

1

강사님 레이아웃이 없습니다.

0

334

1

.NET 5.0 FromSql 질문

0

322

1

질문있어요 . 마지막에 나오는 파일xml

0

232

2

Add-Migration ~~ 사용시 add-migration : 'add-migration'이라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다.

1

1466

3

2019 비주얼스튜디오 쓰고있습니다. 아무리 찾아봐도 c# 기반 mvc가 없습니다.

0

284

1

03. MVC패턴 강의 질문입니다.

0

345

1

세션1 뷰 생성에서 막히고 있습니다..

0

309

1

로그아웃 후 브라우저 뒤로가기 버튼 클릭시 이전 페이지 접속 안되게 하는 방법

0

1291

1

하위 도메인 쿠키 공유 관련

0

975

2

DbContext를 찾을 수 없습니다.

0

308

1

Model Validation에 관해

0

269

2