Вы хотите поддерживать чистое разделение задач - чтобы не было доступа к данным в бизнес-логике и т. Д.
Как правило, я бы определял эту границу с помощью интерфейса, и у вас здесь тоже не было бы доступа к каким-либо конкретным данным (иначе вы перетаскиваете эти зависимости во все, что связано с интерфейсом.
В реализации доступа к данным вы можете делать то, что вы хотите, на данный момент это будет прямой удар между вашими любимыми технологиями доступа к базе данных; и я полагаю, что в Интернете нет недостатка в сравнениях (извините, у меня в голове нет этого, чтобы дать вам).
Я сам не использовал LinQ2Sql, но знаю нескольких людей, которым он нравится; на ум приходит фраза «Lin2SQL F ## king ROCKS man» (от одного из моих более активных друзей).