How can I use the READPAST hint in NHibernate?
Is there any way I can get NHibernate to use the READPAST
h开发者_Python百科int when selecting data from SQL Server?
Option #1 Easy way: SQL query
Session.CreateSQLQuery("select * from YourEntityTable with (readpast) where SomeColumn = :col")
.AddEntity(typeof(YourEntity))
.SetString("col", value)
.UniqueResult<YourEntity>();
Option #2 Requires more work:
If you're not using one of NHibernate.LockMode you can override dialect's AppendLockHint() to something like:
public override string AppendLockHint(LockMode lockMode, string tableName)
{
if (lockMode == <lockModeYouWantToSacrificeForThis>)
{
return tableName + " with (readpast)";
}
return tableName;
}
精彩评论