Как я могу использовать подсказку READPAST в NHibernate? - PullRequest
2 голосов
/ 24 февраля 2011

Можно ли заставить NHibernate использовать подсказку READPAST при выборе данных из SQL Server?

1 Ответ

2 голосов
/ 24 февраля 2011

Вариант № 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;
}
...