대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발/(5) EF Core

Relationship Update

monstro 2025. 8. 12. 11:25
728x90
반응형

- 개요

Entity간의 관계에서 1 : 1 관계1 : 多 관계인 경우 어떻게 Update가 이뤄지는지 알아보겠습니다.

 

- 사전 작업 

1) DataModel 클래스

 

Player 클래스에서 참조하는 외래키 프로퍼티인 GuildNullable하도록 수정하였습니다.

 

2) DBCommand 클래스

 

ShowGuild 함수를 추가하여 Guild에 저장된 데이터를 출력할 수 있도록 합니다.

 

1) 1 : 1 관계에서의 업데이트 : Item과 Player

1 - 1) 기존의 데이터를 수정하여 업데이트

 

Update1v1 함수를 사용하여 1 : 1 관계의 데이터 테이블을 업데이트할 수 있습니다.

이때 기존의 데이터를 수정하는 방식으로 업데이트를 진행합니다.

 

기존의 데이터를 수정하는 방식으로 1 : 1 업데이트 실행

 

실행 결과

 

위와 같이 지정한 데이터만 수정된 것을 확인할 수 있습니다.

 

1 - 2) 새로운 객체를 생성하여 업데이트

 

Update1v1 함수를 사용하여 1 : 1 관계의 데이터 테이블을 업데이트하되,

이번에는 새로운 객체를 생성하여 수정하는 방식으로 업데이트를 진행합니다.

 

새로운 객체를 생성하는 방식으로 1 : 1 업데이트 실행

 

실행 결과

 

위와 같이 수정한 기존의 데이터가 제거되어 null로 변경된 것을 확인할 수 있습니다.

 

2) 1 : 多 관계에서의 업데이트  - Guild와 Player

2 - 1) 기존의 데이터를 수정하여 업데이트

 

Update1vM 함수를 사용하여 1 : 多 관계의 데이터 테이블을 업데이트할 수 있습니다.

이때 기존의 데이터를 수정하는 방식으로 업데이트를 진행합니다.

 

기존의 데이터를 수정하는 방식으로 1 : 多 업데이트 실행

 

실행 결과

 

위와 같이 새로운 데이터가 추가된 것을 확인할 수 있습니다.

 

2 - 2) 새로운 객체를 생성하여 업데이트

 

Update1vM 함수를 사용하여 1 : 多 관계의 데이터 테이블을 업데이트하되,

이번에는 새로운 객체를 생성하여 데이터를 수정하는 방식으로 업데이트를 진행합니다.

 

새로운 객체를 생성하는 방식으로 1 : 多 업데이트 진행

 

실행 결과

 

위와 같이 기존의 데이터들이 전부 제거되어 null로 설정된 것을 확인할 수 있습니다.

 

- 최종 정리

따라서 업데이트를 진행하는 경우 새로운 객체를 생성하기 보다, 기존의 데이터를 수정하는 방식이 권장됩니다.

728x90
반응형

'대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발 > (5) EF Core' 카테고리의 다른 글

Configuration  (0) 2025.08.18
Delete  (0) 2025.08.12
외래키와 Nullable  (0) 2025.08.11
Connected와 Disconnected  (0) 2025.08.11
Update 기초  (0) 2025.08.11