Создать контекст данных не дорого, независимо от того, сколько таблиц он управляет, поэтому это не должно быть критерием при принятии решения о наличии одной или нескольких отдельных реализаций контекста данных. Новый контекст данных является «пустым» до тех пор, пока вы фактически не начнете его использовать, а экземпляры таблиц будут создаваться по мере необходимости.
Что делает экземпляр контекста данных дорогим, так это когда вы снова и снова используете один и тот же экземпляр для отслеживания изменений в различных объектах - например, при использовании кэшированного экземпляра контекста данных в приложении ASP.NET для всех операций базы данных ( теперь это нет-нет).
Пока вы используете контекст данных, как предполагалось, в шаблоне единицы работы, не имеет значения, сколько таблиц он может управлять на уровне определения класса, так как вы создаете только те экземпляры, которые вам нужны в пределах текущая единица работы.
Для меня контекст данных логически представляет целевую базу данных, поэтому он должен представлять все сущности, которые отображаются в этой базе данных, независимо от того, есть ли 10 или 100, - разделение на самом деле не дает никакой выгоды, кроме меньшего количества строк кода в данный класс, но если это то, что вас волнует, то непременно используйте разные классы.