структура сущности и грязное чтение - PullRequest
2 голосов
/ 11 января 2011

У меня есть Entity Framework (.NET 4.0), идущий против SQL Server 2008. База данных (теоретически) обновляется в рабочее время - удаляйте, а затем вставляйте все через транзакцию. На практике это случается не так часто. Но мне нужно убедиться, что я всегда могу читать данные в базе данных. Приложение, которое я пишу, никогда не будет выполнять какие-либо записи данных - только для чтения.

Если я делаю грязное чтение, я всегда могу получить доступ к данным; худшее, что происходит, - это получение старых данных (что приемлемо). Однако могу ли я сказать Entity Framework всегда использовать грязное чтение? Есть ли проблемы с производительностью или целостностью данных, о которых мне нужно беспокоиться, если я настрою EF таким образом? Или я должен сделать шаг назад и посмотреть, как переписать процесс, выполняющий процесс удаления / вставки?

Ответы [ 3 ]

8 голосов
/ 11 января 2011

TransactionScope - ваш друг: Entity Framework с NOLOCK

5 голосов
/ 12 января 2011

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

1 голос
/ 17 января 2011

По предыдущей ссылке я нашел это, что также отвечает на вопрос.

http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx

...