Entity Framework Core - Entity Change (엔티티 체인지 하기) - C# & .NET
엔티티 프레임워크 (Entity Framework, 또는 EF)에서 데이터 베이스에 있는 테이블을 불러오는 건 당연히 쉽죠. 그렇지만 테이블의 칼럼들이 너무 많고 앱에서는 다 필요가 없을 시에는 어떻게 할까요? 원래는 다 가지고 오면 좋은 방법이 아닙니다. 그만큼의 메모리를 차지하는 데다 인터넷을 거쳐서 올 때는 데이터가 많아질수록 API를 불러오는 값이 비싸지죠.
그렇지만 필요한 만큼의 칼럼이 있는 클래스를 만들어 놓으면 어떻게 EF에서 앱으로 오기 전에 서버에서 칼럼들이 걸러져서 그 클래스에 맞춰져서 오게 할 수 있을까요? 제가 말하는 건 서버에서 앱으로 오기 전에 데이터들이 걸러지는 방법입니다 - 다 불러와서 새로 만든 클래스에 맞추는 게 아닙니다 (이런 식이면 데이터 전체다 앱으로 와서 클라이언트에서 걸러지니 좋은 방법이 아니죠).
아주 간단합니다. 우선 간소화된 클래스를 하나 만드세요. 아래 예제는 데이터 베이스에 있는 Student 테이블 중 세 가지 칼럼만 있습니다. 하지만 EF에서는 StudentFiltered라는 entity가 존재하지 않죠.
public class StudentFiltered
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
그리고 아래의 코드로 StudentFiltered라는 entity를 불러옵니다.
var students = dbContext.Students.Select(p => new StudentFiltered() {
Id = p.Id,
Name = p.Name,
Age = p.Age
}).ToList();
그럼 students라는 변수는 Student 타입이 아니고 StudentFiltered라는 타입이 됩니다. 그리고 위의 코드는 SQL 서버상에서는 위의 세 칼럼만 보내지게 되는 거죠. 클라이언트에 도달하는 데이터는 이 세 칼럼만 오게 되죠.
간단하지요?
수고하셨습니다. 즐거운 코딩되세요!
도움이 되셨거나 즐거우셨다면 아래의 ❤️공감버튼이나 구독버튼을 눌러 주세요~ 감사합니다
T-SQL - Cursor (커서) (0) | 2023.03.20 |
---|---|
100% 모든 환경에 작동하는 페이지 이동 이벤트 포착 자바스크립트 코드 - JavaScript (0) | 2023.03.13 |
this... Static Method (this 정적 메소드) - C# & .NET (0) | 2023.02.20 |
Entity Framework Core - Best Practices (모범사례) - C# & .NET (0) | 2023.02.06 |
다기능 다이얼로그 박스 또는 모달 창 (Dialog Box or Modal Window) - JavaScript (0) | 2023.01.23 |