728x90
1️⃣ Tracked Entity를 얻어온다.
2️⃣ Entity 클래스의 property를 변경한다. (Set)
3️⃣ SaveChanges를 호출한다.
public static void UpdateTest()
{
using (AppDbContext db = new AppDbContext())
{
var guild = db.Guilds.Single(g => g.GuildName == "T1"); // 1번
guild.GuildName = "DWG"; // 2번
db.SaveChanges(); // 3번
}
}
변경사항을 적용할 때 변경사항만 업데이트되는 것인지, 변경되지 않은 부분까지 업데이트 되는 것인지 궁금할 수 있다. SaveChanges를 호출하게 되면 내부에서 DetectChanges 함수를 호출한다. 이 함수에서 최초 데이터와 현재 데이터를 비교해서 변경된 부분만 갱신하는 역할을 담당한다. 즉, 데이터를 수정하면 변경된 데이터가 있는 부분만 업데이트하여 효율적이다.
*Single은 우리가 원하는 조건의 데이터를 1개 반환해주는 함수다. 조건에 맞는 데이터가 2개 이상이면 Exception을 뱉는다.
728x90
'공부 > EFCore' 카테고리의 다른 글
[EFCore] Disconnected Update (Reload / Full Update) (0) | 2022.09.05 |
---|---|
[EFCore] DTO 활용하기 (0) | 2022.09.05 |
[EFCore] DB에 이미 존재하는 사용자를 PK로 연결하려면? (0) | 2022.09.04 |
[EFCore] SaveChanges를 호출하면 어떤 일이 일어날까 (0) | 2022.09.04 |
[EFCore] Entity State, 엔티티의 상태를 알아보자 (0) | 2022.09.04 |