Эй, Натан, хороший вопрос.
Как уже говорили другие, лучше всего абстрагировать все ваши методы GET / WRITE и полностью скрыть DataContext от вашей бизнес-логики.
Мой подход к этому заключался в написании DAL с набором универсальных методов, которые используют рефлексию, чтобы делать то, что необходимо.
В этих случаях, когда метод получает объект, скажем «Продукт», он может делать все, что ему угодно, независимо от вашей технологии ORM / Data Access. Если хотите, можете буквально написать строку SQL на основе нескольких параметров и отражения объекта.
ОДНАКО , выполнение этого в одиночку не полностью выведет вас из LINQ в SQL.
Проблема действительно в самих сущностях. Даже если вы абстрагируете метод извлечения данных, вы все равно будете использовать эти Entites всю свою бизнес-логику.
Я чувствую, что на данный момент это просто то, с чем я готов жить, потому что переписывание моих собственных отключенных сущностей похоже на мост, который я еще не готов пересечь, просто потому, что это кажется большим ненужной работы ...
Мне было бы очень интересно посмотреть, как другие справятся с этим.
ура!