우수 답변
POCO 는 평범한 오래된 CLR (공용 언어 런타임) 개체입니다. 기본적으로 도메인의 엔티티입니다. 엔터티 프레임 워크에서는 일반적으로 데이터베이스 우선 모델이 아닌 코드 우선 모델에서 유용합니다. 이 클래스는 특정 프레임 워크 또는 기술의 기능을 상속하지 않습니다. 간단한 공용 클래스이며 속성과 메서드 만 포함합니다. 이러한 메소드는 데이터베이스에서 데이터 저장 및 검색과 같은 영구 논리를 구현하지 않습니다. 이러한 클래스는 지속성 무시 클래스라고도합니다. 기본적으로 데이터베이스 테이블의 행 및 열과 통신하는 레이어 역할을합니다.
Poco 클래스 예
공용 클래스 그룹
{
public int ID {get; 세트; }
공개 문자열 GroupName {get; 세트; }
공용 ApplicationUser 구성원 {get; 세트; }
공개 문자열 GroupDescription {get; 세트; }
공개 ICollection
}
POCO는 DTO [디자인]보다 더 잘 작동합니다.
DTO ” 유일한 목적은 상태를 전송하는 것이며 동작이 없어야합니다.이 패턴의 사용 예는 Martin Fowler의 DTO 설명 을 참조하세요.
반면 POCO는 OOP의 규칙을 따릅니다. 상태 및 동작을 가져야합니다 (그럴 필요는 없음). POCO는 Martin Fowler가 만든 POJO에서 가져옵니다. [ anecdote here ]. 그는 프레임 워크 무거운 EJB 구현을 거부하는 것을 더 섹시하게 만드는 방법으로 POJO라는 용어를 사용했습니다. POCO는 .Net에서 동일한 컨텍스트에서 사용해야합니다. 프레임 워크가 사용자를 지시하지 않도록하십시오. 개체의 디자인입니다.
.NET 및 Entity Framework에 대해 자세히 알아 보려면 YouTube 채널을 확인하세요.
답변
POCO (Plain old CLR objects)는 단순히 도메인의 엔티티입니다. 일반적으로 엔티티 프레임 워크를 사용하면 엔티티가 자동으로 생성됩니다. 이것은 훌륭하지만 안타깝게도 이러한 엔티티에는 SOC (문제 분리)에 반대되는 데이터베이스 액세스 기능이 산재되어 있습니다. POCO는 데이터 액세스 기능이없는 단순한 엔티티이지만 여전히 모든 기능을 제공합니다. EntityObject 기능 다음과 같은 항목
- 지연 로딩
- 변경 추적
다음은이를위한 좋은 시작입니다.
코드 생성기를 사용하여 기존 엔티티 프레임 워크 프로젝트에서 쉽게 POCO를 생성 할 수도 있습니다.