개요
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 문서 링크를 참조하세요.