Я был удивлен, увидев документацию по этому вопросу, не знает ли кто-нибудь, поддерживает ли OrmLite Оптимистический параллелизм? Любая документация или примеры ссылок были бы наиболее желанными.Поддерживает ли ServiceStack.OrmLite Оптимистичный параллелизм
ответ
Это неправда OrmLite. Это зависит от уровня изоляции и настройки базы данных.
Пример:
using (var trans = Db.BeginTransaction(IsolationLevel.ReadCommitted) as SqlTransaction)
{
try
{
//do something
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
}
READ COMMITTED
Указывает, что заявления не может читать данные, которые были изменены, но не совершенные другими транзакциями. Это предотвращает загрязнение . Данные могут быть изменены другими транзакциями между отдельными отчетами в рамках текущей транзакции, что приводит к неповторяемым показаниям или фантомным данным. Этот параметр является стандартом SQL Server . Поведение READ COMMITTED зависит от настройки опции базы данных READ_COMMITTED_SNAPSHOT:Если READ_COMMITTED_SNAPSHOT установлен в положение ON, то компонент Database Engine использует Row управления версиями, чтобы представить каждое утверждение с транзакционно последовательным снимок данных, как она существовала в начале заявления. Замки не используются для защиты данных от обновлений другими транзакциями.
В качестве альтернативы, вы можете использовать BeginTransaction(IsolationLevel.Snapshot)
и имеют оптимистический параллелизм в том, что вы избежать блокировки, но SQL Server использует rowversion перед тем, чтобы избежать изменения данных, претерпевшие изменения за пределами текущей транзакции.
С другой MS SQL Server docs:
Операции под управлением изоляции моментальных снимков с оптимизмом подход к модификации данных путем приобретения блокировок данных перед выполнением модификации только для обеспечения соблюдения ограничений. В противном случае блокировки не будут получены на данных, пока данные не будут изменены. Когда строка данных соответствует критериям обновления, транзакция моментального снимка проверяет, что строка данных не была изменена с помощью транзакции , которая была совершена после транзакции моментального снимка. Если строка данных была изменена вне транзакции моментального снимка, возникает конфликт обновления и транзакция моментального снимка завершается. Конфликт обновления обрабатывается механизмом Database Engine, и нет способа отключить обнаружение конфликтов обновлений.
- 1. ProstgreSQL, MySQL оптимистичный параллелизм
- 2. Google App Engine оптимистичный параллелизм
- 3. Оптимистичный параллелизм: IsConcurrencyToken и RowVersion
- 4. nhibernate envers и оптимистичный параллелизм
- 5. Оптимистичный параллелизм с MVC4 ApiController
- 6. Поддерживает ли Node.js параллелизм?
- 7. Оптимистичный параллелизм в ADO.NET Entity Framework
- 8. Оптимистичный параллелизм Mongoose с номером версии
- 9. Jaydata, Web Api и оптимистичный параллелизм
- 10. Entity Framework 6 Oracle и оптимистичный параллелизм
- 11. Entity Framework Оптимистичный параллелизм Обработка исключений
- 12. Azure-mobile-apps-net-client отключить Оптимистичный параллелизм
- 13. Оптимистичный параллелизм с платформой Entity Framework и ORACLE
- 14. Оптимистичный параллелизм DB2 - RID, строка версии, уточнения временной метки
- 15. Entity Framework удалить без выбора и оптимистичный параллелизм
- 16. servicestack.ormlite sql.in не поддерживает пустые списки
- 17. Как вы используете оптимистичный параллелизм с контроллером OAP для WebAPI
- 18. Дозвуковая и оптимистичная параллелизм
- 19. Поддерживает ли PHP параллелизм файлов в этом сценарии?
- 20. как последовательность поддерживает параллелизм в oracle
- 21. Storm поддерживает параллелизм задач или данных?
- 22. оптимистичный замок или пессимистический замок?
- 23. ли Параллелизм управления переопределение
- 24. Оптимистичный параллелизм по всем направлениям или только таблица, которая вызывает взаимоблокировки?
- 25. Hibernate оптимистичный тест блокировки
- 26. Fluent NHibernate оптимистичный замок
- 27. NEventStore оптимистичный замок
- 28. ServiceStack.ORMLite HI/LO Algorithm
- 29. Поддерживает ли OrmLite атрибут MetadataType?
- 30. ASP.NET параллелизм
Насколько я знаю, Ormlite обеспечивает обертку вокруг IDBConnection, очень тонкой обертки. И если вы используете «использование», он закроет соединение для вас. Ничего конкретно не делается для параллелизма. Транзакция также существует как часть IDBConnection. – kunjee