Entity Framework 4 сводит меня с ума. Вот такая ситуация:
Сущность работника - ассоциация "многие ко многим" - сущность отдела
Я получаю сотрудников из EmployeeRepository и отделов из DepartmentRepository. Каждый репозиторий использует свой собственный контекст данных. В моем пользовательском интерфейсе есть список отделов (из DepartmentRepository), которые можно выбрать для сотрудника.
Когда отдел выбирается для сотрудника, он связывает отдел из контекста данных DepartmentRepository, поэтому, когда я пытаюсь сохранить сотрудника, он жалуется на изящное исключение.
Мне нужно отделить контекст данных для отделов от контекста данных для сотрудников, потому что отделы могут быть изменены, а вызов сохранения изменений в DepartmentRepository не может также сохранить сотрудника.
Отдельные контексты данных отлично работают для моей ассоциации «многие с 0» или «1», потому что я могу просто привязать свойство внешнего ключа, а не экземпляр объекта.
Единственный обходной путь, который я могу придумать, - это исправить коллекцию в ассоциации, создав еще один DepartmentRepository с тем же контекстом данных, что и EmployeeRepository, и разрешить отделы DepartmentRepository с отделами, извлеченными из DepartmentRepository с контекстом данных EmployeeRepository, но это просто ужасный, вонючий дизайн и неприемлемое «решение».
На данный момент меня не волнует стратегия генерации кода (хотя POCO было бы неплохо), мне действительно просто нужно что-то, что будет работать, и Entity Framework 4 не так уж плох в создании определений модели, поэтому я хотел бы придерживаться его.
EmployeeRepository
иDepartmentRepository
? - person Jacob   schedule 02.09.2010