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 절에 절에서 일부 양식을 각 별칭 (NO LOCK)
문제는 최종 SQL의 매개 변수가 모든 것을,이다 "를 추가하려면 ? " SQL이 유효하지 않은 예외가 발생합니다. 왜 매개 변수가 채워지지 않고 어떻게 고쳐야합니까? 미리 감사드립니다.