powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework и блокировка на уровне записи
8 сообщений из 8, страница 1 из 1
Entity Framework и блокировка на уровне записи
    #37759505
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте, не могу никак найти нужную информацию

Допустим что я измению в контексте EF запись в таблице через UpdateObject(). На эту запись накладывается блокировка в таблице?

Навроде UPDATE WITH (ROWLOCK). Т.е сможет ли прочитать данную запись(до SaveChanges в первом) другой контекст EF, открытый из другого места или будет ждать коммита? Мне что-то подсказывает что произойдет считывание навроде with (nolock)
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37759666
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

Что-то мне подсказывает, что вам надо прочитать про блокировки и транзакции в SQL-сервере. После чего выяснить вопрос, как EF управляет соединениями и транзакциями.
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37759760
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorOracleLover,

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

КЭП!
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37760043
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

Документация как бы намекает:

авторUPDLOCK
Указывает, что блокировки обновления применяются и удерживаются до завершения транзакции.

И далее по тексту . Простите, если чо. Ленив стал, неохота документацию на форум постить.
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37760180
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

А чё, если на ЕФ пишете, ещё и про такую фигню надо задумываться? Забейте или на еф, или на профессию и займитесь делом. :)
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37760205
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorOracleLover,

Документация как бы намекает:

авторUPDLOCK
Указывает, что блокировки обновления применяются и удерживаются до завершения транзакции.

И далее по тексту . Простите, если чо. Ленив стал, неохота документацию на форум постить.

Когда Entity Framework создает новую транзакцию для операции SaveChanges, изменения объектов в контексте объекта не принимаются до завершения этой транзакции. Это обеспечивает согласованность состояния контекста объекта и источника данных.


Это понятно. Но допустим что первый контекст взял запись с индексом 1 и что-то долго возится с ней прежде чем удалить ее наконец сделать SaveChanges(). Во время этой возни другой контекст может хапнуть эту же запись?
Я очень внимательно прочитал твои ссылки(первая вообще не в тему) - там про эту ситуацию не сказано ничего.
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37760228
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

Я честно не знаю, никогда не задавался этим вопросом, но может ConcurrencyMode = Fixed Вам чем то поможет?
...
Рейтинг: 0 / 0
Entity Framework и блокировка на уровне записи
    #37760537
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

1. Если вы явно не управляете транзакциями то транзакция будет создаваться на каждый statement, и следовательно, после его завершения все блокировки будут сняты.
2. Если открываете транзакцию явно - то блокировки будут держаться до фиксации или отката.
3. Что касается конкурентного доступа к разным записям - это определяется уровнем изоляции транзакций, и hint'ами на блокировки. Если не хотите, чтобы второй коннект смотрел запись, пока вы ее мусолите - ставьте Serializable. Подробнее об изоляции транзакций, и последствиях применении каждого уровня написано в любом букваре по базам данных.

EF не привносит в эти механизмы ничего нового, просто удобное API для работы с БД.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework и блокировка на уровне записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]