Должен ли я использовать только один DataContext? - PullRequest
0 голосов
/ 18 мая 2011

Я новичок в .NET и LINQ to SQL.

Пока что я собираю данные и заполняю сетку, и все работает нормально.

Однако, когда я построил свою вторую страницу, я создал новый DataContext (я предполагал использовать один на страницу), когда я ссылался на таблицу, которую использовал на моей предыдущей странице, это дало мне ошибку «Неоднозначная ссылка», поскольку моя таблица в обоих DataContexts. После удаления таблицы со второй я мог сослаться на таблицу из моей первой.

Итак, должен ли я иметь только один контекст для всего моего приложения или один для каждой таблицы? Может быть, что-то среднее между тем, где я помещаю таблицы, которые я в основном использую вместе в одном контексте?

Какая лучшая практика?

Ответы [ 3 ]

5 голосов
/ 18 мая 2011

Не совсем ясно, спрашиваете ли вы (1), сколько классов DataContext вы должны написать или (2) сколько раз вы должны «обновлять» (создавать экземпляры) класс DataContext.

Если это (1), вы хотите написать один класс DataContext для всего вашего приложения, если только ваше приложение не использует более одной базы данных.

Если это (2), вы, как правило, захотите создать один экземпляр DataContext для запроса , что в основном означает один для каждой страницы.

3 голосов
/ 18 мая 2011

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

1 голос
/ 18 мая 2011

В LINQ to SQL DataContext служит абстракцией базы данных. Если я правильно понимаю ваш вопрос, вы использовали два отдельных класса, которые определяли уникальные DataContexts для каждой страницы? Вам нужен только один класс DataContext, которым можно поделиться в приложении. Если вы действительно этого хотите, у вас может быть несколько экземпляров DataContext, но я не могу вспомнить, когда вы захотите это сделать.

Если у вас есть код доступа к DataContext и таблицам, это поможет.

См. Ссылку MSDN в классе DataContext - DataContext для получения дополнительной информации.

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