NH Criteria で Expression.Sql を使用したいのですが、オーバーロードが機能せず、ドキュメントも見つかりません。
パラメータはどこに入力すればよいですか?
私は NH DetachedCriteria を持っていますが、SQL 式を使用する必要があります。これは、2 方向で LIKE を実行することが不可能であるためです。
だから私はこれを追加します
criteria.Add(Expression.Sql(@"(
UPPER(RIGHT(RTRIM(LTRIM('?')), ?)) like '%'+UPPER(RIGHT(RTRIM(LTRIM(?)), ?))
OR UPPER(RIGHT(RTRIM(LTRIM(?)), ?)) like '%'+UPPER(RIGHT(RTRIM(LTRIM('?')), ?))
) and len('?') >= ?",
new Object[]{
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
"aaa",
}
, new NHibernate.Type.IType[]{
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String,
NHibernateUtil.String
}
));
インデックスが範囲外の例外を取得し続けます
パラメータが一致することを保証します。エラーでも、110 個の「?」と 10 個のパラメーターを含むクエリが表示されます。
どうすればトリオを行うことができますか?