Как я могу использовать подсказку READPAST в NHibernate?
Могу ли я заставить NHibernate использовать READPAST
подсказка при выборе данных с SQL Server?
1 ответ
Решение
Вариант № 1 Простой способ: SQL-запрос
Session.CreateSQLQuery("select * from YourEntityTable with (readpast) where SomeColumn = :col")
.AddEntity(typeof(YourEntity))
.SetString("col", value)
.UniqueResult<YourEntity>();
Вариант № 2 Требуется больше работы:
Если вы не используете NHibernate.LockMode, вы можете переопределить AppendLockHint() диалекта на что-то вроде:
public override string AppendLockHint(LockMode lockMode, string tableName)
{
if (lockMode == <lockModeYouWantToSacrificeForThis>)
{
return tableName + " with (readpast)";
}
return tableName;
}