Я пытаюсь определить лучшую стратегию организации DataContexts. Типичный DB, который мы работаем, имеет от 50 до 100 таблиц, обычно в третьей нормальной форме и со многими отношениями между ними. Я думаю, у нас есть два варианта:
- Поместите все таблицы в один контекст. Это гарантирует, что все, что мы делаем, будет выполнено в правильном порядке в базе данных. Проблема в том, что дизайнер LINQ будет бесполезным с более 50 таблицами, и я могу беспокоиться о производительности, которая может быть затронута.
- Создайте несколько контекстов данных на основе логической группировки таблиц. Проблема в том, что будут места, где одна сторона отношения будет в одном контексте, а другая в другом. Мы должны вручную позаботиться о том, чтобы зафиксировать оба контекста в правильном порядке.
Есть ли рекомендуемая практика для этого?
Подробнее:
Я хочу создать свои собственные сущности и блок работы поверх LINQ to SQL. Объекты будут определены в файле модели xml, где также будет указано соответствие объектам LINQ. Пользовательский инструмент будет генерировать мои объекты (POCO) на основе модели. Клиентский код будет взаимодействовать только с моими сущностями и моей единицей работы; никогда напрямую с объектами DataContext или LINQ. Однако я не хочу дублировать то, что LINQ to SQL предоставляет из коробки, поэтому я хочу использовать базовый LINQ DataContext. Это означает, что у меня не может быть двух порядков в разных контекстах данных, так как было бы невозможно сопоставить мой порядок POCO с обоими из них.