首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nhibernate参数绑定顺序潜在错误?

nhibernate参数绑定顺序潜在错误?
EN

Stack Overflow用户
提问于 2011-03-15 23:36:02
回答 1查看 231关注 0票数 2

我正在使用最新的nhibernate 3,我的问题是:

代码语言:javascript
复制
iqt = rps.Terminals.GetQuery().Where(x => x.NetProtocol.Id == 4);
var res = iqt.OrderBy(x => x.Attributes[124]).ToList(); 
//ITerminal have IDictionary<long,string>

当我查看日志文件时,我看到生成的sql:

代码语言:javascript
复制
SELECT terminal0_.ID       AS ID4_        ,
  terminal0_.ALIAS          AS ALIAS4_     ,
  terminal0_.TTYPE_ID       AS TTYPE3_4_   ,
  terminal0_.IP_ADDRESS     AS IP4_4_      ,
  terminal0_.STREET         AS STREET4_    ,
  terminal0_.LOCATION       AS LOCATION4_  ,
  terminal0_.MODEL_ID       AS MODEL7_4_   ,
  terminal0_.NODE_ID        AS NODE8_4_    ,
  terminal0_.NETPROTOCOL_ID AS NETPROTO9_4_,
  (SELECT (xml_desc(terminal0_.street,'UA'))
     FROM terminals
    WHERE terminals.id =terminal0_.Id
  ) AS formula1_,
  (SELECT (xml_desc(terminal0_.location,'UA'))
     FROM terminals
    WHERE terminals.id =terminal0_.Id
  ) AS formula2_,
  (SELECT (xml_desc(terminal_models.description,'EN'))
     FROM terminal_models
    WHERE terminal_models.id = terminal0_.MODEL_ID
  ) AS formula3_
   FROM TERMINALS terminal0_,
  TERM_ATTRIBUTES attributes1_
  WHERE terminal0_.ID        =attributes1_.TERM_ID
AND attributes1_.ATTR_ID     = :p0
AND terminal0_.NETPROTOCOL_ID=:p1 //-> bug here it bind p1 with 124 value but correct p0
ORDER BY attributes1_.VALUE ASC;

:p0 = 4 [Type: Int64 (0)],
:p1 = 124 [Type: Int64 (0)]

我认为nhibernate无法正确解析带有sub select的参数绑定顺序。有没有nhibernate专家或开发人员来确认并说明如何修复它?

Tnaks很多

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-16 09:52:04

它看起来确实有问题。

请在http://jira.nhforge.org上打开一个包含小型复制项目或测试用例的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5314082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档