[EF Core] ASP.NET Core & EF Core CRUD 구현

목적

  • 앞서 ASP.NET Core Ef Core 에서 EF Core 사용하여 PostrgeSQL 에 데이터 저장까지 했었습니다.
  • 추가로, 특정 데이터 Update, Delete 까지 되도록 코드 추가하였습니다.

DataSeeder.cs 코드 내용 추가

  • DataSeeder.cs 내에 추가로 Udpate, Delete 하는 메서드를 추가 하였습니다.
  • 참고로, Delete 할 때 Actor 테이블이 Movie 테이블과 1:N 형태로 관계가 맺어져 있습니다.
  • 때문에 Movie, Acotr 2개의 테이블은 현재 ID 컬럼이 PrimaryKey, ForeignKey 관계이기 때문에 상위 테이블을 직접적으로 삭제 하지 못하고 하위 테이블인 Actor 를 포함하여 같이 삭제해야 합니다.
  • 이때는 Linq 에서 Inclue 메서드를 사용하면 됩니다.
private static void UpdateData(MovieDataContext context)
{
    var movie = context.Movies.FirstOrDefault(x => x.Title == "The ShawshRedemption");
    movie.Title = "태극기 휘날리며";
    movie.Year = 2002;
    movie.Summary = "6.25 전쟁 비극 속, 형제애";
    movie.Actors = new List<Actor>
    {
        new Actor { Fullname = "장동건" },
        new Actor { Fullname = "원빈" },

    context.Movies.Update(movie);
    context.SaveChanges();
    }
}

private static void DeleteData(MovieDataContext context)
{
    var movie = context.Movies.OrderBy(e => e.Id)
                              .Include(e => e.Actors)
                              .Where(e => e.Title == "The Godfather")
                              .First
    context.Remove(movie);
    context.SaveChanges();
}
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY