Delete

Eunho Bae·2022년 7월 1일
0

Soft Delete

게임에서 DB에 존재하는 아이템을 삭제할 때 진짜 Remove를 통해 삭제를 하는 것이 아닌, bool 프로퍼티를 정의하고 삭제되었을 경우 true로 세팅하는 식으로 구현한다.

  protected override void OnModelCreating(ModelBuilder builder)
        {
            // 앞으로 Item Entity에 접근할 때 항상 사용되는 모델 레벨(Item)의 필터링
            // SoftDeleted가 true인 경우도 체크하고 싶을 때 (필터를 무시하고 싶으면) IgnoreQueryFilters 옵션 추가
            builder.Entity<Item>().HasQueryFilter(i => i.SoftDeleted == false);
        }

위와 같이 필터링을 해주면 SoftDeletd가 false인 아이템만 출력하게 할 수 있다.

foreach(var item in db.Items.Include(i => i.Owner).ToList())

필터 무시

foreach(var item in db.Items.Include(i => i.Owner).IgnoreQueryFilters().ToList())
profile
개인 공부 정리

0개의 댓글