0
一部のクエリではインターセプタを使用してWITH(NO LOCK)を追加しようとしていますが、ReadUncommittedは選択肢ではありません。 コードは次のようになります。パラメータがNHibernateインターセプタ内に設定されていません
var rawSql = sql.ToString();
if (!rawSql.Contains(IQueryOverExtensions.QueryHintNoLockString))
return sql;
var noWhere = rawSql.Substring(0, rawSql.IndexOf(WhereKeyword, StringComparison.InvariantCulture));
var from = noWhere.Substring(noWhere.IndexOf(FromKeyword, StringComparison.InvariantCulture));
var fromWithNoLock = from.Replace("_ ", $"_ {WithNoLock} ");
var sqlWithNoLock = rawSql.Replace(from, fromWithNoLock);
return base.OnPrepareStatement(new SqlString(sqlWithNoLock));
をここで、私はWHERE句にFROM句一部の形をとると、各エイリアスは(NO LOCK)
問題は、最終的なSQLのパラメータがすべてあること、である「WITH追加します? " SQLが無効であるという例外がスローされます。なぜパラメータが記入されず、それを修正するのか? ありがとうございます