Я написал несколько предположений относительно Entity Framework, затем несколько вопросов (поэтому, пожалуйста, исправьте, где я ошибаюсь). Я пытаюсь использовать Pocos с EF 4.Entity Framework 4: Имеет ли смысл создавать единую диаграмму для всех объектов?
Мои предположения:
- только один контекст данных может существовать для диаграммы EF.
- Данные Контексты могут относиться к нескольким объектам.
- Если у вас есть два источника данных, например сервер MS SQL и Oracle, для доступа к данным для EF требуется две разные диаграммы.
- Контекст данных диаграммы EF - это «Единица работы», имеющая одно значение Save() для чего угодно на диаграмме. (Конечно, вы можете обернуть его в классе UnitOfWork, но он по сути имеет те же обязанности).
Если предположить, что это правильно, вот мои вопросы:
Если вы не будете держать все объекты на той же диаграмме EF, как же сохранить целостность данных, как «Заказы» не может существовать без «Клиента»? Является ли это единственной функцией репозитория для загрузки данных только для проверки целостности или мы пытаемся «поймать/поймать» на ошибках ссылочной целостности базы данных?
Разве вы не создали бы диаграмму EF для каждой сущности? Например, я не ожидал бы изменений в клиенте и изменений в продукте, который будет написан вместе, так как они не имеют ничего общего друг с другом (их на одной диаграмме заставляют их записывать вместе). Или область EF-диаграммы охватывает все аналогичные объекты, хранящиеся на одном носителе?
Является ли нормой деление таких объектов как таковых или просто имеет одну диаграмму, содержащую все сущности? Я думаю, что последнее, но мышление становится лучше меня.
На самом деле, в Entity Framework есть ** Object Contexts ** - не DataContext (это эквивалент Linq-to-SQL) –
Моя дурная привычка. Мы на самом деле просто назвали их «Контекст» для нашего кода POCO. Мы отключили генерацию кода, поэтому не видели, что фактически использует EF. –