SagiK-Repository / Learn_CleanArchitecture

Learn CleanArchitecture
0 stars 0 forks source link

Youtube - Clean Architecture : Code Unparalleled #9

Closed SAgiKPJH closed 2 months ago

SAgiKPJH commented 2 months ago
SAgiKPJH commented 2 months ago

개요

SAgiKPJH commented 2 months ago

1 Clean Architecture Dot Net 6

SAgiKPJH commented 2 months ago

2 Clean Architecture- Implementing Entity Framework Core

Infrastructure

DBContext

Migration

패키지 관리자 콘솔 : add-migration InitialMigration

2 Result

SAgiKPJH commented 2 months ago

3 One-to-Many and Many-to-Many Relationships in Clean Architecture

Database 업데이트 할 때 주의사항

PM> remove-migration PM> add-migration AddedMoviesRentalMembers

  • 기존의 만들었던 DB 제거
  • image PM> update-database


3 Result (Add Domains)

SAgiKPJH commented 2 months ago

3 예제에 대한 자세한 내용

One to Many, Many to Many

데이터베이스에서의 관계들을 정의할 때, "One to Many"와 "Many to Many"는 매우 중요한 개념입니다. 이러한 관계들은 엔티티 간의 연결 방식을 정의하고, 데이터가 어떻게 관련되어 있는지를 명확히 합니다.

One to Many (1:N)

"One to Many" 관계는 한 엔티티가 다른 엔티티 여러 개와 관계를 가질 수 있음을 의미합니다. 예를 들어, 한 명의 회원(Member)이 여러 번의 대여(Rental)를 할 수 있는 경우입니다. 여기서 회원은 "One" 쪽이고, 대여는 "Many" 쪽입니다.

이 관계를 사용하는 이유는 다음과 같습니다:

Many to Many (N:M)

"Many to Many" 관계는 두 엔티티 그룹이 서로를 여러 번 참조할 수 있음을 의미합니다. 예를 들어, 한 번의 대여(Rental)에 여러 편의 영화(Movie)가 포함될 수 있고, 한 편의 영화는 여러 번 대여될 수 있는 경우입니다. 여기서 대여와 영화 모두 "Many" 쪽에 속합니다.

이 관계를 사용하는 이유는 다음과 같습니다:

이러한 관계들은 데이터베이스 설계에서 중요한 역할을 하며, 엔티티 간의 관계를 명확히 하고 데이터의 중복을 방지하며, 데이터 관리의 효율성과 유연성을 높이는 데 도움을 줍니다.

[1] 티스토리 - ManyToOne과 @OneToMany로 배우는 JPA 기초 사용법 (https://stir.tistory.com/158) [2] Learn Microsoft - 일대다 관계 - EF Core (https://learn.microsoft.com/ko-kr/ef/core/modeling/relationships/one-to-many) [3] velog - JPA - 다대다 연관관계 (https://velog.io/@yuseogi0218/JPA-%EB%8B%A4%EB%8C%80%EB%8B%A4-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84) [4] TISTORY - [JPA] @ManyToMany, 다대다[N:M] 관계 - 개발자의 기록습관 (https://ict-nroo.tistory.com/127)



각 함수의 의미

제공된 코드 조각에서 사용된 함수들은 Entity Framework Core (EF Core)의 데이터 모델링을 위한 API를 사용하여 데이터베이스 스키마를 정의하는 데 사용됩니다. 각 함수의 의미는 다음과 같습니다:

OnModelCreating(ModelBuilder modelBuilder)

modelBuilder.Entity<Member>()

.HasOne<Rental>(s => s.Rental)

.WithMany(r => r.Members)

.HasForeignKey(s => s.RentalId)

modelBuilder.Entity<MovieRental>().HasKey(g => new {g.RentalId, g.MovieId});

이러한 메서드들을 사용하여, EF Core를 통해 데이터베이스의 테이블, 엔티티 간의 관계, 그리고 기타 구성 요소들을 정의하고 관리할 수 있습니다.

SAgiKPJH commented 2 months ago

4 Clean Architecture | Adding Dependency Injection to Infrastructure Layer Class Library

Add CelarnArchitecture Infrastructure DI