我有一个使用NHibernate 2.1.2.4000和.Net OracleClient连接到旧的Oracle8i生产数据库的项目。我已经实现了一个ICriteria,它生成正确的查询,但是引发了以下内部异常:ICriteria ORA-12704:字符集不匹配。
return Session.
CreateCriteria<Carrera>().
SetProjection(Projections.SqlFunction("concat", NHibernateUtil.AnsiString, Projections.Property("Descripcion"), Projections.Constant(s), Projections.Property("Id"))).
Add(Expression.InsensitiveLike("Descripcion", filter.Trim(), MatchMode.Anywhere)).
SetMaxResults(cant).
List<String>();我的问题是:如何在IType (object,IType)的参数中声明Projections.Constant AnsiString?我认为这可能会解决问题。我已经测试过删除Projections.Constant(),而且都很好。
示例生成的查询:
select
*
from
( SELECT
(this_.CARR_DESCRIPCION||:p0||this_.CARR_CODIGO) as y0_
FROM
CARRERAS this_
WHERE
lower(this_.CARR_DESCRIPCION) like :p1 )
where
rownum <=:p2;
:p0 = ', código: ', :p1 = '%2451%', :p2 = 20提前谢谢。
发布于 2012-11-13 20:57:36
也许是Projections.Constant(s, NHibernateUtil.AnsiString)?
https://stackoverflow.com/questions/13299149
复制相似问题