Я начал работать с уровнем доступа к данным Linq2Sql, и у него есть частичный класс «класса бога», другой частичный из которого является сгенерированным EntitySet. Этот разделяемый класс делает все, что угодно, например сериализует себя в Json, выполняет вызовы базы данных и различные служебные функции, а также определяет множество удобных свойств и методов для взаимодействия с моделью, с которой он «частично».
Как побочный эффект этого, невозможность сериализации и все другие проблемы с антипаттерном «Класс Бога».
Каков хороший шаблон проектирования для разделения этих классов, чтобы лучше разделить проблемы? Я хотел бы сделать акцент на простоте рефакторинга, так как этот класс разбросан по всему приложению.