Этот вопрос вроде пула. Мы пытаемся определить лучшую архитектуру при использовании ORM, например LINQ to SQL. Аргумент, который мы определяем, относится к той структуре, в которой другие приложения будут обращаться к любому корыту напрямую, ссылаясь на DLL или через веб-сервис. У нас есть приложения .NET и PHP-приложения.Архитектура LINQ to SQL. Что лучше?
Возможности:
Нескольких данных контексты: Separting базы данных в единицы работы и создавать отдельные контексты для каждого из них.
За:
- Простота использования
- Классов будут разбиты на разные пространства имен
- Меньшего домена для поддержания
Против:
- объектов должны быть дублируется, если связанных, создание технического обслуживания ад
- объекты не могут быть переданы между контекстом, создавая необходимость другого удара по базе данных
Single контекста данных: Все таблицы, представления, процедуры, находятся в том же огромном контексте.
Плюсы:
- Нет дублирования
- отношения просты в управлении, basicaly LINQ заботится о нем.
- Лучшая производительность, меньше попаданий на БД.
Минусы:
- Все таблицы находятся в том же пространстве имен, код завершения становится орешки
- Не самое лучшее для дизайнера (по крайней мере, на VS2008)
- не может быть избирательным в том, что сохранить, а что нет. Сохраните все или удалите весь режим.
Ну, это то, что пришло мне в голову, поэтому, если есть какие-либо другие плюсы или минусы, пожалуйста, скажите мне, и я включу их в сообщение. Также выберите свой лучший.
Спасибо всем
Кроме того, EF - но очень родственный: http://stackoverflow.com/questions/1028739/should-i-create-a-ado-net-entity-data-model- for-every-table-or-one-for-my-whole –