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