Я могу понять твою боль. Конструктор LINQ to SQL не очень хорош в больших моделях. Однако 35 столов не очень большие.
Когда вы можете разделить таблицы на две или более групп, где каждая группа полностью независима от другой (без отношений), в этом случае разделение оправдано IMO, особенно когда группы являются логически разделенными частями. В этом случае вы можете дать каждому контексту собственное имя.
Однако, когда у вас есть отношения между группами, это часто указывает на то, что они являются частью одного домена. При разделении такого домена это означает, что вам придется дублировать таблицы, что может быть раздражающим и непрактичным, но когда одна модель / контекст читает только эту таблицу, это может быть нормально.
Также помните, что расщепление модели может иметь некоторые раздражающие побочные эффекты в вашей архитектуре. Конечно, это зависит от вашей архитектуры. Приложение, над которым я работал, использовал «служебные команды», которые выполняли бизнес-логику от имени уровня представления. Автоматическая конструкция предоставила командам экземпляр DataContext, а наличие нескольких DataContexts сделало этот дизайн довольно разочаровывающим.