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