Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.04.2012, 17:07
|
|||
---|---|---|---|
|
|||
Entity Framework и блокировка на уровне записи |
|||
#18+
Здраствуйте, не могу никак найти нужную информацию Допустим что я измению в контексте EF запись в таблице через UpdateObject(). На эту запись накладывается блокировка в таблице? Навроде UPDATE WITH (ROWLOCK). Т.е сможет ли прочитать данную запись(до SaveChanges в первом) другой контекст EF, открытый из другого места или будет ждать коммита? Мне что-то подсказывает что произойдет считывание навроде with (nolock) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.04.2012, 17:58
|
|||
---|---|---|---|
Entity Framework и блокировка на уровне записи |
|||
#18+
OracleLover, Что-то мне подсказывает, что вам надо прочитать про блокировки и транзакции в SQL-сервере. После чего выяснить вопрос, как EF управляет соединениями и транзакциями. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.04.2012, 18:39
|
|||
---|---|---|---|
|
|||
Entity Framework и блокировка на уровне записи |
|||
#18+
SolYUtorOracleLover, После чего выяснить вопрос, как EF управляет соединениями и транзакциями. КЭП! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.04.2012, 21:58
|
|||
---|---|---|---|
Entity Framework и блокировка на уровне записи |
|||
#18+
OracleLover, Документация как бы намекает: авторUPDLOCK Указывает, что блокировки обновления применяются и удерживаются до завершения транзакции. И далее по тексту . Простите, если чо. Ленив стал, неохота документацию на форум постить. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.04.2012, 23:36
|
|||
---|---|---|---|
Entity Framework и блокировка на уровне записи |
|||
#18+
OracleLover, А чё, если на ЕФ пишете, ещё и про такую фигню надо задумываться? Забейте или на еф, или на профессию и займитесь делом. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.04.2012, 00:07
|
|||
---|---|---|---|
|
|||
Entity Framework и блокировка на уровне записи |
|||
#18+
SolYUtorOracleLover, Документация как бы намекает: авторUPDLOCK Указывает, что блокировки обновления применяются и удерживаются до завершения транзакции. И далее по тексту . Простите, если чо. Ленив стал, неохота документацию на форум постить. Когда Entity Framework создает новую транзакцию для операции SaveChanges, изменения объектов в контексте объекта не принимаются до завершения этой транзакции. Это обеспечивает согласованность состояния контекста объекта и источника данных. Это понятно. Но допустим что первый контекст взял запись с индексом 1 и что-то долго возится с ней прежде чем удалить ее наконец сделать SaveChanges(). Во время этой возни другой контекст может хапнуть эту же запись? Я очень внимательно прочитал твои ссылки(первая вообще не в тему) - там про эту ситуацию не сказано ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.04.2012, 00:38
|
|||
---|---|---|---|
Entity Framework и блокировка на уровне записи |
|||
#18+
OracleLover, Я честно не знаю, никогда не задавался этим вопросом, но может ConcurrencyMode = Fixed Вам чем то поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.04.2012, 10:31
|
|||
---|---|---|---|
Entity Framework и блокировка на уровне записи |
|||
#18+
OracleLover, 1. Если вы явно не управляете транзакциями то транзакция будет создаваться на каждый statement, и следовательно, после его завершения все блокировки будут сняты. 2. Если открываете транзакцию явно - то блокировки будут держаться до фиксации или отката. 3. Что касается конкурентного доступа к разным записям - это определяется уровнем изоляции транзакций, и hint'ами на блокировки. Если не хотите, чтобы второй коннект смотрел запись, пока вы ее мусолите - ставьте Serializable. Подробнее об изоляции транзакций, и последствиях применении каждого уровня написано в любом букваре по базам данных. EF не привносит в эти механизмы ничего нового, просто удобное API для работы с БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&mobile=1&tid=1350374]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 144ms |
0 / 0 |