EF Core 현황 분석 - slog

EF Core(.NET 8)의 현 상태에 대한 전문가의 짧은 정리 글을 발견해서 그 내용을 정리하면서 슬로그를 작성하고 마무리 하려고 합니다.

https://weblogs.asp.net/ricardoperes/the-current-status-of-ef-core

저는 전문가의 압축된 내용을 선호합니다. 빠르게 요점을 파악할 수 있고 궁금한 부분은 추가 조사를 통해 획득할 수 있기 때문입니다.

위의 글은 저자의 앞 전 글(2022)을 참고해야 변경 점을 확인할 수 있습니다.

https://weblogs.asp.net/ricardoperes/current-limitations-of-entity-framework-core


기본 키 생성

EF Core의 기본 키 생성 전략

  • ID/자동 증가 (지원하는 데이터베이스에서)
  • GUID/고유 식별자 (지원하는 데이터베이스)
  • 시퀀스 기반 (지원하는 데이터베이스)
  • Hi/Lo (SQL Server에만 해당)
  • 수동으로 할당됨

→ 변화 없음

컬렉션 유형

  • List<string>등 기본 유형의 컬렉션 사용 가능

테이블 상속 패턴

  • TPH, TPT, TPC 모두 이제 지원 함

표현식 열

  • 표현식 열을 이제 사용 가능 함

CUD 연산 표현식

  • CUD(생성, 업데이트, 삭제) 작업에 저장 프로시저 사용 가능

강력한 형식의 DML 작업

  • 이제 업데이트 및 삭제를 LINQ 쿼리에서 수행할 수 있음

수명주기 이벤트

  • 관련된 다양한 이벤트가 추가되었음
    • SavingChanges
    • SavedChanges
    • SaveChangesFailed
    • Tracked
    • StateChanged

복합 유형을 사용하는 값 개체


관련해서 각 내용을 상세 추적하고 샘플 코드로 작성함

7 Likes

복합 유형을 사용하는 값 개체

키 값을 가지지 않는 Address, Coordinate 같은 개체를 엔터티에서 사용할 수 있게 되었습니다. 키가 없으므로 Customer 엔터티에 적용될 경우 Customer_City, Customer_PostCode 등으로 인라인 되어 컬럼으로 적용되게 됩니다.
(이후 EF Core 버전에서는 여러 컬럼으로 인라인 되지 않고 단일 컬럼으로 JSON 형태로 저장 할 수 있는 기능이 추가될 예정이라고 합니다)

2 Likes

컬렉션 유형

이제 기본 형식의 컬렉션 유형을 사용할 수 있습니다. 여기서 기본 형식이란 값으로 취급되고 값 변환을 사용하여 매핑하는 방법이 있는 형식입니다. int, string, DateTime, DateOnly 등입니다.

3 Likes

EF Core도 dapper 처럼 raw query 지원이 조금 강화되었으면 좋겠어요.

    var name = connection.ExecuteScalar<string>("SELECT Name FROM Customers WHERE CustomerID = @CustomerID;", new { CustomerID = 1});

이런식으로 바로 linq 등 없이 바인딩 가능하도록…

insert, update도 아직 제한적이라

2 Likes