Несколько моделей данных Linq с одной и той же таблицей, отображаемой в каждом отображении повторного использования - PullRequest
1 голос
/ 05 августа 2010

Я реализовал шаблон хранилища на уровне доступа к данным нашего текущего уровня обслуживания.

У нас есть объектная модель, в которой один и тот же класс "исторических заметок" отображается на нескольких объектах (в настоящее время 6, но вскоречтобы быть больше!)

Часть лучших практик использования linq to sql - не иметь один файл dbml для каждой таблицы в db, а вместо этого разбивать его, таким образом, это неПри создании контекста наблюдается огромный спад производительности.

К сожалению, логические места для разделения объектов оставляют исторические заметки в 5 разных файлах DBML.Когда генератор linq создает классы, он генерирует другой класс в другом пространстве имен.

У меня есть объект исторической заметки в модели домена, но я не хочу повторно отображать объектную модель домена вмодель данных для каждого случая, когда мы используем исторические заметки.

Одна из вещей, которые я не хочу делать, это разбивать «чтение» данных на несколько запросов.

Есть ли способ, которым я могу сопоставить историческую заметку с несколькими моделями данных, но написать сопоставление только один раз?

Спасибо

Пит

Решение

Спасибо за помощь, я думаю, что я собираюсь вернуться к одному контексту данных для всех таблиц данных.

Обходных путей, связанных с настройкой нескольких моделей, нетСтоит дополнительной сложности и потенциальной хрупкости кода.Необходимость писать один и тот же код левой и правой руки для отображения исторических заметок - это слишком много работы и слишком много мест для синхронизации кода.

Спасибо, ребята, за ввод

Ответы [ 2 ]

1 голос
/ 05 августа 2010

Одной из лучших рекомендаций по использованию linq to sql не является наличие одного файла dbml для каждой таблицы в базе данных, но вместо этого, чтобы разбить его, таким образом, у него не будет существенного снижения производительностикогда контекст создан.

Где вы это услышали?Я не согласнаDataContext, как правило, довольно легкий объект, независимо от количества таблиц.

См. Здесь для анализа проблем, связанных с несколькими контекстами данных:

LINQ to SQL: один контекст данных или несколько контекстов данных?
http://craftycodeblog.com/2010/07/19/linq-to-sql-single-data-context-or-multiple/

По моему мнению, у вас должен быть один текстовый текст данных на базу данных. Это также решит ваши проблемы с отображением.

См. Также LINQ to SQL: несколько / одно.дБмл на проект?

0 голосов
/ 05 августа 2010

Один из вариантов может заключаться в том, чтобы помещать исторические заметки в их собственный текст данных и сохранять отношения между этим объектом и остальной частью вашей модели как «идентификаторы» (так что это просто внешние ключи в БД). Вот как бы я это сделал в любом случае.

...