Где я должен создать экземпляр класса обслуживания 'SqlDatacontext? - PullRequest
2 голосов
/ 18 декабря 2008

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

Сначала я попытался создать экземпляр этого подключения как статический закрытый член для класса обслуживания. Это работает, но также генерирует кучу блокировок, задержек и проблем с грязными объектами.

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

Как вы предлагаете заняться этой проблемой?

1 Ответ

2 голосов
/ 18 декабря 2008

Взгляните на эту статью Рика Штраля - он объясняет опции и предоставляет хорошую фабричную реализацию, чтобы справиться с созданием одного запроса на веб-контекст / поток (в зависимости от того, над чем вы работаете.

Использовал это в большинстве приложений, над которыми я работал, где мы использовали linq-to-sql, и это казалось правильным подходом!

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