LINQ to SQL Classes - PullRequest
       13

LINQ to SQL Classes

2 голосов
/ 27 марта 2009

Лучше ли иметь один класс контекста толстых данных со всеми таблицами в нем или разбить их на более мелкие классы и потенциально иметь классы "одной таблицы"?

С организационной точки зрения я чувствую, что не должен разделять отношения по нескольким контекстам данных (я даже не думаю, что это выполнимо). Но с другой стороны, я думаю, что создание нового экземпляра этого толстого класса только для запроса одной несвязанной таблицы является излишним.

Что ты думаешь?

Ответы [ 2 ]

4 голосов
/ 27 марта 2009

Создать контекст данных не дорого, независимо от того, сколько таблиц он управляет, поэтому это не должно быть критерием при принятии решения о наличии одной или нескольких отдельных реализаций контекста данных. Новый контекст данных является «пустым» до тех пор, пока вы фактически не начнете его использовать, а экземпляры таблиц будут создаваться по мере необходимости.

Что делает экземпляр контекста данных дорогим, так это когда вы снова и снова используете один и тот же экземпляр для отслеживания изменений в различных объектах - например, при использовании кэшированного экземпляра контекста данных в приложении ASP.NET для всех операций базы данных ( теперь это нет-нет).

Пока вы используете контекст данных, как предполагалось, в шаблоне единицы работы, не имеет значения, сколько таблиц он может управлять на уровне определения класса, так как вы создаете только те экземпляры, которые вам нужны в пределах текущая единица работы.

Для меня контекст данных логически представляет целевую базу данных, поэтому он должен представлять все сущности, которые отображаются в этой базе данных, независимо от того, есть ли 10 или 100, - разделение на самом деле не дает никакой выгоды, кроме меньшего количества строк кода в данный класс, но если это то, что вас волнует, то непременно используйте разные классы.

0 голосов
/ 27 марта 2009

Зависит от количества ваших столов. Если его скажут меньше, чем, скажем, 20, я лично не разделю его.

Если вы хотите, вы можете разделить по задачам, или отношениям, или целям.

Тебе, я бы сказал, правда. Главное, о чем я буду помнить: «Какой самый приемлемый способ сделать это?» при принятии решения о том, чтобы разделить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...