尝试HQL,总NHibernate n00b。
public IEnumerable<Log> GetLast(int numRecords, string severity)
{
var query = _Session.CreateQuery(
"from Log as l inner join fetch l.UserProfile order by l.TimeStamp desc where l.Severity in (:severities)")
.SetParameterList("severities", Translator.SeverityOrHigher(severity))
.SetMaxResults(numRecords)
.Enumerable<Log>();
return query;
}
Translator.SeverityOrHigher
会返回IList<string>
。
我有一个Log
对象,它以多对一的方式引用UserProfiles
对象。对象分别以Logs
和UserProfiles
保留在数据库中。
我在var query = ...
行上抛出了以下异常:
Exception of type 'Antlr.Runtime.MismatchedTokenException' was thrown.
我不知道这意味着什么,谷歌搜索并不是特别有帮助。我不知道HQL是否存在问题,或者我是否设置了这个问题。任何指导都将不胜感激。
答案 0 :(得分:2)
我已经多年没有使用过NHIB ...你有没有尝试过最后的声明?可能它是这样的,我总是把它放在最后。