Моя компания собирается начать новый проект с использованием Telerik OpenAccess ORM. Это новый продукт для нас, и в первый раз мы будем использовать ORM для проекта вместо подхода, основанного на наборе данных. В настоящее время у нас есть некоторые разногласия относительно лучшего способа структурировать наш слой данных. В частности, если у нас есть один файл .rlinq и модель домена для проекта, или мы должны иметь для каждого экрана / модуля файлы .rlinq, которые содержат только таблицы и столбцы из таблиц, необходимые для этого конкретного экрана / модуля. Чтобы проиллюстрировать последнее:
Скажем, у нас есть таблица Person, с полями для имени, фамилии, ssn, даты рождения, пола и семейного положения. На экране личной информации нам нужны все эти поля, поэтому мы включаем всю таблицу в модель предметной области в этот файл .rlinq. На другом экране (с отдельным файлом .rlinq) нам нужны только фамилия человека и ssn, поэтому объект Person в этом файле .rlinq содержит только фамилию и ssn.
Аргументом для этого метода было прежде всего то, что мы должны выбирать только те данные, которые нам нужны для определенного экрана, и не более. В наших текущих приложениях на основе набора данных это имеет смысл. Также было высказано беспокойство, что наличие ненужных таблиц и связей приведет к загрузке ненужных данных, даже если они не запрашиваются, и к загрузке сети. Аргумент против этого заключается в том, что мы фрагментируем модель предметной области и вносим ненужную сложность, и эта часть работы ORM состоит в управлении извлечением данных с помощью кэширования и отложенной загрузки. Мы не можем прийти к соглашению по этому вопросу и не можем найти какую-либо убедительную информацию так или иначе, поэтому мы обращаемся к сообществу StackOverflow за помощью!
Если это имеет значение, мы создаем приложение для интрасети на основе Windows Forms, и уровень данных будет находиться за службами WCF, а база данных будет иметь около 100 таблиц.
Заранее благодарю за помощь!