Совместное использование классов / моделей LINQ-to-SQL между несколькими проектами в решении - PullRequest
3 голосов
/ 25 мая 2010

У меня есть несколько проектов C # в решении Visual Studio, которые все будут использовать одну и ту же базу данных SQL Server.

Как правильно распределить классы LINQ-to-SQL между проектами?

Я подумываю просто скопировать dmbl файлы в каждый проект, но думаю, что это может быть слишком избыточно Есть ли лучший способ приблизиться к этому?

Ответы [ 5 ]

4 голосов
/ 26 мая 2010

Полагаю, вам нужно разделить код доступа к базе данных между проектами, а не классами linq-2-sql.

Создание библиотеки доступа к данным ( DAL ), которая предоставляет операции над базой данных, которые реализуются через классы linq-2-sql, а не предоставляют классы.

Я бы предложил использовать Шаблон репозитория

См. Библиотеку DAL из проектов, которые вы хотите.

2 голосов
/ 26 мая 2010

Если они находятся в одном решении, вы можете добавить ссылки на Linq-проект в проекты, которым требуется доступ к Linq-классам.Или я неправильно понял ваш вопрос?Это можно сделать, щелкнув правой кнопкой мыши папку «Ссылки» проекта, которому требуется доступ к классам Linq, перейдите на вкладку «Проекты» и выберите проект Linq.

Если это строгий доступ к даннымпосле вы, следуйте советам Эндрю Флорко и создайте уровень доступа к данным, чтобы получить необходимые данные.

2 голосов
/ 26 мая 2010

Вы можете: Собрать ее как библиотеку классов и включить ее. Это просто класс, верно.

0 голосов
/ 26 мая 2010

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

DAL будет инкапсулировать детали того, как он взаимодействует с базой данных (в данном случае это использование LINQ to SQL), и скрывать их за четко определенным интерфейсом, который имеет значение для приложения.

Кроме того, поскольку классы, сгенерированные из файла LINQ to SQL DBML, являются просто простыми старыми объектами CLR (POCO), я не вижу проблемы в их непосредственном представлении как части интерфейса вашего DAL.

0 голосов
/ 26 мая 2010

Что вам нужно сделать, это создать библиотеку классов, которая содержит ваши классы DBML. Затем вы добавляете это как ссылку на ваши другие проекты. Убедитесь, что в этой библиотеке классов нет ничего, кроме кода, связанного с базой данных, поэтому его легко добавить в будущие проекты.

Тогда сделайте то, что предложил Эндрю Флорко, и ознакомьтесь с образцами доступа к данным. Репозиторий хорош, хотя мне нравится DAO .

...