나는 분노로 사용하려고하기 전에 더 많이 이해하려고하는 IRepository 패턴에 대해 일반적으로 stackoverflow와 인터넷을 하루 종일 추적하고 있습니다.IRepository 집계 및 지연로드
repoistory는 주입 및 조롱이 가능한 공통 인터페이스를 노출하는 총 루트 및 자식 객체에 대한 액세스를 캡슐화합니다.
그래서 당신은 당신의 집계 루트 객체가 인스턴스의 :
다음class Employee {
string FirstName;
string LastName;
IEnumerable<Address> Addresses;
IEnumerable<PhoneNumber> PhoneNumbers;
}
자식 객체 :
class EmployeeRepository : IRepository<Employee> {
Employee Get(id) {
...does stuff, builds full Employee object including Addresses/Phone No's and returns
}
}
:
class Address {
string BuildingName;
...etc
}
class PhoneNumber {
string PhoneNo;
...etc
}
그래서 저장소가 같이 보일 것을 하지만 전체 직원을 얻고 싶지는 않다고 말하면서, FirstName으로 평평한 직원 기록을 원한다고 말합니다 LastName에 저장하고 나중에 게으른로드를 수행 할 수 있습니다. 이것이 어떻게 성취되어야 하는가?
class EmployeeRepository : IRepository<Employee> {
Employee Get(id) {
...does stuff and builds flat Employee object without Addresses and Phone Numbers
}
Employee GetAddresses (Employee emp) {
...
}
Employee GetPhoneNumbers (Employee emp) {
...
}
}
이 확인 아니면 좀 신성 불가침 DDD 규칙을 깨는 것 및 개발자 지옥에 구울 : 같은 것을하도록 허용 할 것인가? 어떻게 게으른 로딩이이 모델에 맞도록되어 있는지, 다시 검색해 보았습니다 만, 내가 찾은 것은 "NHibernate/Entity Framework/ORM이 당신을 위해 해줄 것"입니다.
미리 감사드립니다.
D.
로드 똑똑 것