EDM에서 생성 된 클래스는 ORM/Persistence 클래스입니다. 이 클래스를 사용하여 데이터베이스를 쿼리/변경합니다. 데이터베이스를 변경할 때 모든 DTO 오브젝트를 POCO 오브젝트로 변환해야합니다.
ORM은 응용 프로그램에서 데이터베이스에 레코드를 삽입하기 위해 insert into
구문을 처리하는 대신 StudentSet.Add
을 사용하여 새 데이터를 추가합니다. johndoe
정보는 SQL 구문으로 변환되며, EF는 쿼리로 변환 할 때 각 속성을 각 열에 매핑합니다.
Add
메서드는 johndoe
정보를 메모리에 Added
으로 저장하지만 바로 데이터베이스에 실행되지 않습니다. 다른 Add
방법이있는 경우 Added
으로 표시됩니다. SaveChanges
에 전화하는 순간 모든 변경 사항은 생성 된 쿼리를 전송하여 데이터베이스에 저장됩니다.
DTO와 EF 엔터티 간의 매핑은 johndoe
을 추가하기 전에 발생합니다. UI에 사용되는 또 다른 DTO 클래스가있을 수 있습니다. 수동으로 맵핑하거나 매퍼 라이브러리를 사용하여 DTO 오브젝트에서 POCO 오브젝트를 작성해야합니다. 예를 들면 다음과 같습니다.
// studentDto as parameter
var johndoe = new Student
{
Name = studentDto.StudentName,
Age = studentDto.StudentAge
};
MyContext.StudentSet.Add(johndoe);
// studentDto might have another information as well
var johndoeSubject = new Subject
{
Name = studentDto.SubjectName,
Years = studentDto.SubjectYears
};
MyContext.SubjectSet.Add(johndoeSubject);
MyContext.SaveChanges();
네가 시도한 것은 무엇입니까? 예, 코드에서 JohnDoe를 데이터베이스에 넣습니다. DTO에서 데이터를 전달하는 경우 DTO의 등록 정보를 기반으로 POCO를 설정해야합니다. –