我想在 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 个参数的查询。
我怎么可能做三重奏?