개요
Entity 프레임워크 Core를 사용하면 데이터베이스 명령을 명시적으로 실행하지 않고도 애플리케이션에서 데이터베이스로 작업할 수 있습니다. SaveChanges()
메서드를 사용하여 애플리케이션 내에서 데이터를 삽입, 업데이트 또는 삭제할 수 있으며 이러한 변경 사항을 MongoDB에 유지할 수 있습니다.
SaveChanges()
메서드를 호출하면 EF Core Provider는 데이터에 대한 모든 변경 사항을 자동으로 감지하고 필요한 명령을 실행하여 MongoDB 쿼리 API 를 사용하여 데이터베이스 를 업데이트 합니다.
이 가이드 에서는 EF Core Provider를 사용하도록 구성된 애플리케이션 에서 일반적인 쓰기 (write) 작업을 수행하는 방법의 예를 확인할 수 있습니다.
팁
EF 코어 제공자를 사용하도록 애플리케이션 을 구성하는 방법을 학습 보려면 EF 코어 제공자 구성을 참조하세요.
Insert
Add()
메서드를 사용하여 컬렉션에 단일 엔터티를 삽입하거나 AddRange()
메서드를 사용하여 여러 엔터티를 한 번에 삽입할 수 있습니다.
하나의 엔터티 삽입
Add()
메서드는 수정하려는 DbSet
인스턴스에 지정한 동일한 유형의 단일 엔터티를 허용합니다.
다음 코드는 Add()
메서드를 사용하여 Planets
DbSet
에 새 Planet
객체를 추가합니다. 그런 다음 SaveChanges()
메서드를 호출하여 해당 엔터티를 MongoDB collection에 삽입합니다.
db.Planets.Add(new Planet() { name = "Pluto", hasRings = false, orderFromSun = 9 }); db.SaveChanges();
여러 엔티티 삽입
AddRange()
메서드는 DbSet
에 추가하려는 엔터티의 배열을 허용합니다.
다음 코드는 AddRange()
메서드를 사용하여 Planet
객체 배열을 Planets
DbSet
에 추가합니다. 그런 다음 SaveChanges()
메서드를 호출하여 해당 엔터티를 MongoDB collection에 삽입합니다.
var planets = new[] { new Planet() { _id = ObjectId.GenerateNewId(), name = "Pluto", hasRings = false, orderFromSun = 9 }, new Planet() { _id = ObjectId.GenerateNewId(), name = "Scadrial", hasRings = false, orderFromSun = 10 } }; db.Planets.AddRange(planets); db.SaveChanges();
Update
엔터티를 업데이트 업데이트 엔터티를 조회 합니다. 그런 다음 해당 엔터티를 변경합니다. 제공자 는 속성을 설정하거나 목록 값이 있는 필드에 항목을 추가 및 제거하는 등 엔터티에 대한 모든 변경 사항을 추적합니다. MongoDB 에 업데이트 를 저장하려면 SaveChanges()
메서드를 호출합니다. EF Core Provider는 업데이트된 엔터티를 변경 전 엔터티의 스냅샷 과 비교하고, MongoDB 쿼리 API 를 사용하여 컬렉션 을 자동으로 업데이트합니다.
다음 코드는 name
값이 "Mercury"
인 엔터티를 조회한 다음 name
필드를 업데이트합니다. 그런 다음 이 코드는 SaveChanges()
메서드를 호출하여 해당 변경 사항을 collection에 유지합니다.
var planet = db.Planets.FirstOrDefault(p => p.name == "Mercury"); planet.name = "Mercury the first planet"; db.SaveChanges();
삭제
Remove()
메서드를 사용하여 collection에서 단일 엔터티를 삭제하거나 RemoveRange()
메서드를 사용하여 여러 엔터티를 한 번에 삭제할 수 있습니다.
1개의 엔티티 삭제
Remove()
메서드는 수정하려는 DbSet
인스턴스에 지정한 동일한 유형의 단일 엔터티를 허용합니다.
다음 코드는 name
값이 "Pluto"
인 Planet
엔티티를 제거합니다. 그런 다음 SaveChanges()
메서드를 호출하여 MongoDB collection에서 해당 엔터티를 삭제합니다.
var planet = db.Planets.FirstOrDefault(p => p.name == "Pluto"); db.Planets.Remove(planet); db.SaveChanges();
여러 엔티티 삭제
RemoveRange()
메서드는 DbSet
에서 제거할 엔터티의 배열을 허용합니다.
다음 코드는 두 개의 Planet
엔티티를 찾아 배열에 추가합니다. 그런 다음 RemoveRange()
메서드를 사용하여 DbSet
에서 두 엔터티를 모두 제거합니다. 마지막으로 SaveChanges()
메서드를 사용하여 MongoDB 컬렉션에서 해당 엔터티를 제거합니다.
var pluto = db.Planets.FirstOrDefault(p => p.name == "Pluto"); var scadrial = db.Planets.FirstOrDefault(p => p.name == "Scadrial"); var planets = new[] { pluto, scadrial }; db.Planets.RemoveRange(planets); db.SaveChanges();
추가 정보
이 가이드에 설명된 메서드에 대해 자세히 알아보려면 다음 .NET API 문서 링크를 참조하세요.