我曾经能够使用MySQL
在NHibernate 2.1中运行以下代码作为多查询var total = new LeagueInfoQuery { Count = true, User = CurrentUser }.CreateCriteria(session).FutureValue<int>();
var leagues = new LeagueInfoQuery { User = CurrentUser, PageSize = pageSize, Page = page, SortBy = sortBy, SortAsc = sortAsc }.CreateCriteria(session).Future<LeagueInfo>();
var results = PaginationHelper.CreateCustomPage<LeagueInfo>(leagues, pageSize, page, total.Value);
例如LeagueInfoQuery只是一个可以创建标准ICriteria的自定义查询对象。
但是,自从升级到NHibernate 3.0后,我现在收到语法错误。异常消息如下。
{“执行多条件时出错: [SELECT count(*)as y0_ FROM
League
this_ WHERE this_.User = ?p0; \ r \ nSELECT this_.Id为y0_, this_.Name为y1_,min(f1_.Date)为 y2_,max(f1_.Date)为y3_, 将(不同的t2_.Id)计为y4_ FROMLeague
this_ inner joinTeam
t2_ on this_.Id = t2_.League内部联接 {_ 1}} f1_ on this_.Id = f1_.League 在哪里this_.User =?p1 GROUP BY this_.Name ORDER BY y0_ desc limit ?P1; \ r \ n]的“}
内部例外:
{“您的SQL中有错误 句法;检查手册 对应于您的MySQL服务器 用于正确语法的版本 近 '' b68d9d4e-a958-4fb8-8490-9e4401572f38 '' 在第1行“}
所以它看起来像是一个语法错误,但这并没有在v2.1中发生,如果我在消息中编辑SQL以便参数是值,我可以让它工作。
那么为什么NHibernate 3.0中会出现此错误?我是否需要特别为MySQL语法配置某些内容,如果是这样的话?
干杯。