• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

22.02.23 23:51 작성 조회수 205

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

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