问题
Is there any way I can get NHibernate to use the READPAST hint when selecting data from SQL Server?
回答1:
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;
}
来源:https://stackoverflow.com/questions/5104695/how-can-i-use-the-readpast-hint-in-nhibernate