2009-05-01 7 views
1

Я рассмотрел несколько похожих вопросов, но я не видел никого, что прямо обращалось ко мне, поэтому простите меня, если это дубликат.Должны ли объекты бизнес-логики знать свои объекты данных LINQ-to-SQL?

Для разделения проблем я пытаюсь каким-то образом сопоставить свои бизнес-объекты с логикой с объектами данных LINQ to SQL в файле .dbml (довольно новичок в этой битве). Однако похоже, что мои бизнес-объекты должны знать о соответствующих объектах LINQ2SQL. Я прочитал this article о попытке использовать POCOs с помощью файла сопоставления xml, и похоже, что это похоже на то, что я хочу, за исключением того, что у меня нет однозначного сопоставления из таблиц в классы из- to-many, которые мне необходимы для создания дополнительной таблицы.

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

Как я могу отделить эти слои?

ответ

2

Не уверен, что вы каким-то образом привязаны к LINQ to SQL, но то, что вы пытаетесь выполнить, в значительной степени является значением по умолчанию в NHibernate. Я рекомендую взглянуть на NHibernate, чтобы узнать, будет ли проще переключиться, чем бороться с LINQ to SQL.

Я обнаружил, что борьба с инструментом почти всегда плохая идея.