[EFCore] DB에 존재하는 데이터 수정하기

2022. 9. 5. 15:47·공부/EFCore
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
'공부/EFCore' 카테고리의 다른 글
  • [EFCore] Disconnected Update (Reload / Full Update)
  • [EFCore] DTO 활용하기
  • [EFCore] DB에 이미 존재하는 사용자를 PK로 연결하려면?
  • [EFCore] SaveChanges를 호출하면 어떤 일이 일어날까
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (237) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (2) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Python
    C
    EFCore
    게임서버
    디자인패턴
    tcp
    코딩
    유니티
    C언어
    EntityFramework
    백준
    네트워크
    Entityfamework
    coding
    C#
    HTML
    라즈베리파이
    unity
    java
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[EFCore] DB에 존재하는 데이터 수정하기
상단으로

티스토리툴바