.NET/Database
-
50 EF Core Interview Questions (1~25).NET/Database 2025. 3. 11. 11:22
Linked In에서 본 50가지 Entity Framework Core에 질문 입니다.LinkedIn**전체 질문에 대한 한글 번역, 그리고 제 답안 입니다.AI 제네레이트 하지 말고 답변해 보라고 했지만, 저도 모르던 부분이 있었고,제가 알지 못했던 부분은 AI의 1차 답안을 가지고, 실제 테스트 해보거나 검색하여 정보를 추가적으로 확인했습니다. 1. EF는 LINQ를 SQL 명령으로 어떻게 변환하나요? 답안보기(클릭)표현식 트리(Expression Tree) 생성: LINQ 쿼리는 표현식 트리로 변환됩니다. 표현식 트리는 쿼리의 구조와 내용을 표현하는 데이터 구조로, 쿼리의 각 부분(예: Where, Select, Join 등)이 노드로 표현됩니다.쿼리 변환 및 최적화: EF Core는 이 표..
-
EF Core 테이블 상속 매핑 (TPH).NET/Database 2025. 3. 10. 22:11
TPH(Table Per Hierarchy)란?TPH는 상속 계층을 하나의 테이블에 저장하는 방식으로, 부모 클래스와 모든 자식 클래스의 데이터를 단일 테이블에서 관리하는 전략입니다.이를 통해 조인을 최소화하여 조회 성능을 향상시키며, EF Core는 Discriminator(구분자) 컬럼을 자동 추가하여 엔터티 유형을 구분합니다.Payment 관련 클래스 생성 namespace Database.Entity;using System;using System.ComponentModel.DataAnnotations;public abstract class Payment{ [Key] public int Id { get; set; } public decimal Amount { get; set; } /..
-
EF Core 테이블 상속 매핑(TPC).NET/Database 2025. 3. 10. 15:02
TPC (Table Per Concrete) 매핑 전략TPC(Table Per Concrete) 매핑 방법은 부모 클래스의 테이블을 생성하지 않고, 자식 테이블에서 부모 타입의 속성을 공통적으로 포함하는 전략입니다. 1. Log 클래스 작성using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Database.Entity;public abstract class Log{ [Key] public int Id { get; set; } public Date..
-
EF Core 테이블 상속 매핑 (TPT).NET/Database 2025. 2. 17. 23:56
EF core 테이블 상속 매핑 개념 Entity Framework Core(이하 EF Core)는 객체 지향 프로그래밍에서 흔히 사용되는 상속 개념을 관계형 데이터베이스(RDB)와 매핑할 수 있는 다양한 전략을 제공합니다. 이 글에서는 EF Core의 테이블 상속 매핑 기법인 Table Per Hierarchy(TPH), Table Per Type(TPT), Table Per Concrete Type(TPC)을 비교하고, 각 전략이 어떤 경우에 적합한지 살펴보겠습니다.테이블 상속 방법 테이블 상속 방법은 클래스를 상속하는 방법과 다르지 않습니다. using System.ComponentModel.DataAnnotations;namespace Database.Entity;public class Docum..
-
EF Core - (부록) Project Setup.NET/Database 2025. 2. 3. 22:59
해당 작업을 위해서 두가지 프로젝트를 생성하였는데,Repository 프로젝트는 DbContext를 직접사용하여 Database에 여러가지 명령을 보내는 역할을 하는 클래스들을 넣을 프로젝트 입니다. 클래스 라이브러리 프로젝트를 생성하시면 됩니다.Application 프로젝트는 여러 DI처리와 콘솔 입력에 대한 처리를 할 프로젝트인데, 콘솔 어플리케이션 프로젝트로 생성하시면 됩니다. 보통 Database와 연결하는 어플리케이션의 역할은 웹 백엔드가 하는 것이 일반적 이지만, 꼭 웹이 아니더라도 위와같이 구성하여 연결 할 수 있습니다. 어떤 프로젝트라 하더라도 리포지토리의 내용이 변하지 않는다는 점과, 더 간략한 실행을 보여주기 위해서 적합한 방법으로 콘솔 어플리케이션으로 구성했습니다. Repositor..
-
EF Core - Code First.NET/Database 2025. 1. 11. 18:58
Code First란 ?데이터베이스 스키마를 코드에서 정의하고, 이를 기반으로 데이터베이스를 생성하거나 유지보수하는 방식입니다. 생산성을 향상하는 부분에서 Code First 방식이 필요한 이유개발을 하다보면 종종 SQL작업과 코드를 번갈아가면서 작업해야하는 경우가 종종 발생합니다. 하지만 여러 언어를 전환하면서 작업하는 것은 상당히 피로한 일 입니다. SQL 역시 마찬가지 입니다. 백엔드 개발자라면 SQL에 대해서 어느정도 이상 사용할 수 있는 것이 너무나도 당연하지만 전환작업에서의 피로감은 피할 수 없습니다. 이런 부분에서 코드 퍼스트 방식을 사용하게 되면, 데이터베이스 스키마 정의와 성능상에서 지장이 없는 부분에 쿼리에 대해서 기존 개발언어만 사용해서 개발 할 수 있습니다. C#의 EF Core는..
-
EF Core - Domain 분리구조 만들기.NET/Database 2024. 3. 22. 08:42
DDD ?도메인 소프트웨어로 해결해야 할 비즈니스의 영역 입니다.도메인 엔티티 도메인 주도 개발에서 실제 식별 가능한 객체EF Entity데이터베이스 테이블에 저장되는 데이터의 구조즉 테이블을 클래스화 한 것을 EF Entity라고 한다.EF Entity를 Domain Entity와 동일하게 사용할 경우의 문제점EF 엔티티를 도메인 엔티티로 그대로 사용하는 경우, 다음과 같은 문제가 발생할 수 있습니다:도메인의 데이터베이스 의존성 증가: 도메인 엔티티가 EF 엔티티로 구현되면, 데이터베이스의 스키마 변경이 도메인 로직에 직접적인 영향을 미치게 됩니다. 이는 도메인 로직이 데이터베이스 설계에 종속되게 만들어, 도메인 모델의 변경이 불필요하게 자주 일어나게 됩니다.데이터베이스 스키마 노출: EF 엔티티가 도..
-
EF Core 시작하기(2) - DI,CRUD.NET/Database 2023. 12. 22. 00:11
이전글 EF Core 시작하기(1) - ef core 패키지 설치, DB 연결 — 개발블로그 (tistory.com) EF Core 시작하기(1) - ef core 패키지 설치, DB 연결 EF Core EF Core는 닷넷의 ORM도구인 Entity Framework를 오픈 소스 플랫폼 교차 버전으로 만든 것 입니다. Entity Framework가 visual studio 환경에 종속적이고 GUI환경에 윈도우창으로 나오는 설계 도구를 사용해 devman-hoon.tistory.com 이전 포스트에서는 패키지를 설치하고 연결하는데까지 다뤘습니다. 본격적으로 데이터를 다루는 내용을 하기전에 의존성 주입에 대한 내용이 필요할 것 같습니다. 닷넷 DI도구 패키지를 우선 넣어줍니다. ASP.NET Web 프로..