[EFCore] Disconnected Update (Reload / Full Update)

2022. 9. 5. 17:21·공부/EFCore
728x90

 

Disconnected Update는 Update 단계가 이어서 일어나지 않고, 끊겨서 일어나는 경우다.

예를 들어 홈페이지에서 개인정보를 수정한다고 했을 때 홈페이지는 DB에서 닉네임, 이메일 등의 정보를 끌어와 우리에게 보여준다. 우리는 기존 정보를 확인한 뒤 나중에 정보를 수정하는 과정을 겪는다. 이게 바로 Disconnected Update다.

 

Dinsconnected Update에도 2가지 다른 방식이 있다. Reload와 Full Update다.

 

 

1️⃣ Reload

필요한 정보만 보내서 수정한다.

 

public static void UpdateByReload()
{
    // 외부에서 수정을 원하는 데이터의 ID / 정보 넘겨줬다고 가정
    Console.WriteLine("Input GuildId");
    Console.Write(" > ");
    int id = int.Parse(Console.ReadLine());

    Console.WriteLine("Input GuildName");
    Console.Write(" > ");
    string name = Console.ReadLine();

    using (AppDbContext db = new AppDbContext())
    {
        Guild guild = db.Find<Guild>(id);
        guild.GuildName = name;
        db.SaveChanges();
    }
}

 

변경하고 싶은 길드의 이름을 입력하면 그 이름만 받아서 DB에 있는 길드 이름을 바꿔준다. 최소한의 정보로 Update를 할 수 있다는 장점이 있지만 Read를 2번 해야한다는 단점이 있다. 하지만 이 단점이 매우 작고 장점이 크기 때문에 사용하는 편이 좋다.

 

 

2️⃣ Full Update

모든 정보를 다 보내고 받아서 Entity를 아예 새로 만드는 방식이다.

 

public static void UpdateByFull()
{
    Guild guild = new Guild()
    {
        GuildId = 1,
        GuildName = "TestGild"
    };

    using (AppDbContext db = new AppDbContext())
    {
        db.Guilds.Update(guild);
        db.SaveChanges();
    }
}

 

모든 정보를 새로 보내서 내용을 수정할 수 있다. DB에 재차 Read할 필요는 없지만 모든 정보를 다 알아야 데이터를 수정할 수 있다는 단점이 있다. 때문에 보안에 매우 취약하다.

728x90

'공부 > EFCore' 카테고리의 다른 글

[EFCore] Relationship Data 수정 하기  (0) 2022.09.06
[EFCore] Pricipal 데이터가 없을 때 Dpendent 데이터가 존재할 수 있는가?  (0) 2022.09.05
[EFCore] DTO 활용하기  (0) 2022.09.05
[EFCore] DB에 존재하는 데이터 수정하기  (0) 2022.09.05
[EFCore] DB에 이미 존재하는 사용자를 PK로 연결하려면?  (0) 2022.09.04
'공부/EFCore' 카테고리의 다른 글
  • [EFCore] Relationship Data 수정 하기
  • [EFCore] Pricipal 데이터가 없을 때 Dpendent 데이터가 존재할 수 있는가?
  • [EFCore] DTO 활용하기
  • [EFCore] DB에 존재하는 데이터 수정하기
돌멩이수프
돌멩이수프
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
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[EFCore] Disconnected Update (Reload / Full Update)
상단으로

티스토리툴바