0

저는 EF4를 처음 접했고 가능한 한 최선의 지침을 따르려고하기 때문에 POCO 경로를 따라 가서 거기에 POCO 클래스를 넣으려고했습니다. DataAccess 프로젝트에 리포지토리 클래스를 추가하고 DataAccess 프로젝트에서 POCO 프로젝트를 참조하십시오.비즈니스 엔티티, 데이터 액세스 레이어 - 순환 참조

현재 POCO 클래스에 비즈니스 기능을 추가하고 있으며 POCO 개체 중 하나의 특정 메서드가 멋진 POCO 개체를 많이 생성하는 걸림돌을 때 렸습니다. 그러나 생성 한 POCO 객체가 이미 데이터베이스에 있으므로 Circular 참조를 만드는 DataAccess 프로젝트를 참조하기 위해 BusinessEntity 프로젝트가 필요하다는 것을 알고 있습니다.

이 공간에 대한 안내는 크게 감사하겠습니다.

+0

"다른 POCO 개체를 많이 만듭니다"라는 메서드를 제공 할 수 있습니까? 이것은 일어나서는 안됩니다. POCO 메소드는 도메인/비즈니스와 관련이 있어야하며 데이터와 관련이 없습니다. 데이터 작업을 시작하면 더 이상 POCO가 아닙니다. – RPM1984

+0

그래서 보안과 같이 "공유"개체가 있습니다. 나는 새로운 POCO "Event"객체를 Share.Events에 추가하는 "Split"메소드를 구현했다. 이벤트는 DB의 기존 레코드 인 DAL을 호출해야하는이 EventType을 가져오고있다. . – BenBuckland

+0

@BenBuckland - 그 코드는 없어야합니다. 귀하의 DAL/저장소는 해당 속성을 설정해야합니다. EF4를 사용하고 있기 때문에 공유를 가져올 때 이벤트를 "열정적으로로드"할 수 있습니다 (예 : var share = ctx.Shares.Include ("Events")). 그러면 EF가 자동으로 이벤트를 채 웁니다. – RPM1984

답변

0

잘하면 나는 당신의 문제를 오해하고있는 것은 아니지만, DTO (Data Transfer Objects) 유형 경로를 사용하고자하는 것처럼 들릴 수도 있습니다. 나는 EF에 익숙하지 않지만 현재 EF, WCF, WinForms 프로젝트에서 작업 중이다. 클라이언트에 데이터를 다시 보내는 데 사용하는 WCF 서비스에 대한 계약 개체가 있습니다. 내 EF 엔터티의 속성을 비즈니스 레이어의 DTO 개체에 매핑합니다. 내 클라이언트가 EF Entity의 모든 속성을 필요로하지 않기 때문에 DTO를 사용합니다. Try this link. 프로젝트 구조와 관련하여 정말 좋은 것을 발견했습니다. 희망이 도움이됩니다.