공부/EFCore
[EFCore] DB에 존재하는 데이터 수정하기
돌멩이수프
2022. 9. 5. 15:47
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