2
我使用Nhibernate 3.2,Firebird Net Provider 2.7和Criteria。在谷歌搜索后如何返回只有一个记录在数据库我来到这...如何使用Nhibernate + Criteria + Firebird仅从数据库返回一条记录?
var criteria = session.CreateCriteria(typeof(T))
.SetFirstResult(0)
.SetMaxResults(1)
.Add(getRestricao(rest))
.UniqueResult<T>();
tx.Commit();
return criteria;
但不行!错误是:
NHibernate.Exceptions.GenericADOException : could not execute query
[ /* criteria query */ SELECT this_.idPermissao as idPermis1_21_0_, this_.nomePermissao as nomePerm2_21_0_, this_.permissao as permissao21_0_ FROM Permissao this_ WHERE this_.nomePermissao = ? ]
Name:cp0 - Value:Administrador
[SQL: /* criteria query */ SELECT this_.idPermissao as idPermis1_21_0_, this_.nomePermissao as nomePerm2_21_0_, this_.permissao as permissao21_0_ FROM Permissao this_ WHERE this_.nomePermissao = ?]
----> System.ArgumentException : index should be greater than or equal to 0
Parameter name: index
如何从标准的火鸟生成“选择第一个1”?谢谢!
是否存在零条记录,则返回null,不抛出异常。纠正我,如果我错了,但它不只是抛出一个''NonUniqueResultException''如果有多个结果?请参阅:[AbstractQueryImpl行959](https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Impl/AbstractQueryImpl.cs#L959)。 – annemartijn 2014-04-14 11:45:58