MVVM과 함께 EF4.1을 배우고 있으며이 튜토리얼 중 하나에서 다른보기 모델 (EmployeeListViewModel)을 호출 할 때 사용하는 저장소 객체가있는 MainWindowViewModel을 작성합니다. 여기 코드는 다음과 같습니다저장소를 정의 할 위치는 어디입니까?
public MainWindowViewModel()
{
IObjectContextAdapter adapter = ((IObjectContextAdapter)new SidekickEntities());
_vmRepository = new GenericRepository(adapter.ObjectContext);
EmployeeListViewModel viewModel = new EmployeeListViewModel(_vmRepository);
this.ViewModels.Add(viewModel);
}
public EmployeeListViewModel(GenericRepository repository)
{
if (repository == null)
{
throw new ArgumentNullException("repository");
}
_employeeRepository = repository;
this.AllEmployees = new ObservableCollection<Employee>(_employeeRepository.GetAll<Employee>());
}
내가 왜 저장소가 MainWindowViewModel에서 생성 된 후 EmployeeListViewModel에 전달 궁금?
public MainWindowViewModel()
{
EmployeeListViewModel viewModel = new EmployeeListViewModel();
this.ViewModels.Add(viewModel);
}
public EmployeeListViewModel()
{
IObjectContextAdapter adapter = ((IObjectContextAdapter)new SidekickEntities());
_employeeRepository = new GenericRepository(adapter.ObjectContext);
this.AllEmployees = new ObservableCollection<Employee>(_employeeRepository.GetAll<Employee>());
}
내가 EF 꽤 새로운 오전하지만 각각 별도의 뷰 모델에 저장소를 작성하는 작은 청소기를 보인다 : 왜 그냥이 같은 EmployeeListViewModel의 저장소를 만들 수 없습니다. 문제의 ViewModel이 MainWindowViewModel을 닫을 때까지 유지하지 않고 더 이상 사용되지 않거나 너무 많은 저장소 인스턴스를 만들 때 저장소를 정리하지 않겠습니까?
감사합니다. 다행히 개발하기에 앞서 알기 때문에 다행입니다! :) – BrianKE