EF Core
-
EF CORE의 상태 변경프로그래밍 2024. 10. 16. 11:24
EF CORE에서 중요한 것 중 하나는 Tracking, 즉, 상태 추적이다. EF CORE의 Entity는 상태 추적을 비활성화하지 않는 이상에는 모두 상태를 추적하게 되어 있다. 따라서, Entity는 조회, 삽입, 수정, 삭제에 대한 추적 마킹을 가지고 다닌다고 생각하면 되겠다. 해당 마킹 타입은 아래와 같다. public enum EntityState{ /// The entity is not being tracked by the context. Detached, /// /// The entity is being tracked by the context and exists in the database. Its property /// values have not changed..
-
Entity Framework는 Unit of Work가 필요한가?프로그래밍 2024. 10. 14. 14:10
많은 예제 중에 EF를 UoW화 사용하는 예제가 많이 있다. 필자는 그러한 예제가 틀렸다고 이야기하고 싶다. UoW를 EF 상에서 구현하다 보면 DbContext를 작성하는 것과 다름없다고 느낀다면 필자는 그것이 맞다고 이야기하고 싶다. EF의 DbContext 구현은 사실상 UoW의 구현이다. 그럼 왜 UoW를 구현하려고 할까? 그것은 이전 마이크로ORM인 Dapper나 ADO.NET와 연속성을 가지기 위해서라고 필자는 생각한다. EF를 사용함에 있어 기존 구조가 Service - Repository의 구현이라면 누구나 Repository 패턴에 맞춰서 개발하고 싶을 것이고 Repository를 구현하는 데 있어 사용하는 패턴이 UoW인 것이다. 따라서, 필자는 EF의 DbContext를 구현하고 사용..
-
EF Core Code First Entity Model을 작업하는 방법프로그래밍 2024. 9. 24. 14:46
EF Core를 사용하는 경우 개발자는 Entity에 대한 Model작업을 해야 한다. 여기서는 EF Core Code First를 수행하는 방법과 도움이 되는 요소를 설명하고자 한다. Code First시에는 두 가지 방법이 존재한다. 첫째, Attribute를 사용하는 방법.둘째, ModelBuilder를 사용하는 방법. 필자는 처음 EF를 접했을 때 첫째 방법으로만 개발을 진행하였고, Attribute로 설정할 경우 몇 가지 어려움이 있었다. 첫 번째 방법의 문제는 Attribute속성을 적용할 경우 에러에 대한 핸들링이다.Attribute로 선언할 경우 SaveChange에서 오류가 발생하는 것이 아닌 Add, Update, Delete에서 문제가 발생한다.주로 Add, Delete 에서 문제가 ..