인프런 커뮤니티 질문&답변

호야님의 프로필 이미지
호야

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

Blazor RankingApp #4

RankingService 클래스의 UpdateGameResult 메서드에 대한 질문

작성

·

279

0

UpdateGameResult에서

// Update
public Task<bool> UpdateGameResult(GameResult gameResult)
{
	var findResult = _context.GameResults
						.Where(x => x.Id == gameResult.Id)
						.FirstOrDefault();

	if (findResult == null)
		return Task.FromResult(false);
			
	findResult.UserName = gameResult.UserName;
	findResult.Score = gameResult.Score;


	_context.SaveChanges();

	return Task.FromResult(true);
}

여기서  _context.SaveChanges() 를 하기 전에 DeleteGameResult 메서드처럼

_context.GameResults.Update(findResult) 같은 함수가 있겠다 라는 생각이 들었는데 없어서 혼란스러워요

저렇게 하면 지역변수 findResult의 값만 바뀌는 것 아닌가? 생각했는데 실제로 데이터베이스의 값이 바뀌는 걸 보고 원래 저렇게 쓰는건가라는 생각이 들긴하는데 Update만 저렇게 쓰니 원리가 궁금하네용

답변해주시면 정말 감사하겠습니다!

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

신기하게도 객체를 건드리고 SaveChanges()를 때리면,
바뀐 부분을 귀신 같이 인지해서 DB에도 적용을 시킵니다.
EF Core의 사용법은 Part8에서 자세히 다룹니다.

호야님의 프로필 이미지
호야

작성한 질문수

질문하기