LinqToSql статический DataContext в веб-приложении

Для CentOS / RHEL:

yum install mysql-devel -y
8
задан SBurris 3 June 2009 в 12:48
поделиться

5 ответов

Это не статическая копия. Обратите внимание, что свойство извлекает его из Context.Items для каждого запроса. Это копия DataContext для каждого запроса, доступ к которой осуществляется через статическое свойство.

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

6
ответ дан 5 December 2019 в 22:20
поделиться

DataContext дешев в изготовлении, и вы не выиграете от его кэширования таким способом.

0
ответ дан 5 December 2019 в 22:20
поделиться

Я сделал много веб-приложений Linq to Sql, и я не уверен, что то, что у вас есть, будет работать.

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

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

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

0
ответ дан 5 December 2019 в 22:20
поделиться

Я предпочитаю создать базовый класс Page (унаследовать от System.Web.UI.Page) и предоставить свойство DataContext. Это гарантирует, что существует один экземпляр DataContext на запрос страницы.

Это сработало для меня, это хороший баланс ИМХО. Вы можете просто вызвать DataContext.SubmitChanges () в конце страницы и быть уверенным, что все обновляется. Вы также гарантируете, что все изменения предназначены для одного пользователя за раз.

Выполнение этого через static вызовет боль - я боюсь, что DataContext потеряет отслеживание изменений, поскольку он пытается отслеживать изменения для многих пользователей одновременно. Не думаю, что он был предназначен для этого.

Выполнение этого через static вызовет боль - я боюсь, что DataContext потеряет отслеживание изменений, поскольку пытается отслеживать изменения для многих пользователей одновременно. Не думаю, что он был предназначен для этого.

Выполнение этого через static вызовет боль - я боюсь, что DataContext потеряет отслеживание изменений, поскольку пытается отслеживать изменения для многих пользователей одновременно. Не думаю, что он был предназначен для этого.

0
ответ дан 5 December 2019 в 22:20
поделиться

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

0
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: