Nhibernate在Castle.Proxies.UserProxy中传递位置参数?

时间:2012-12-19 01:39:15

标签: sql sql-server nhibernate parameters

我知道我在失去理智。我已经做了一些事情,现在当我的应用程序访问数据库时,我收到错误“无法执行查询...等等等等等等”

内部消息显示“超时已过期。操作完成之前已超时,或服务器未响应。”

当我查看异常中的sql时,它说blah blah blah @p0 blah @p1等等。 @p1@p3被定义为我希望它们,但@p0被定义为Castle.Proxies.UserProxy。好的,如果我将sql放入ssms查询并将@p1的属性转换为@p3,然后将我期望的属性转换为@p0,那么它会立即返回。

那么让我看看我是否可以简洁。

  1. 我的错误说无法执行sql并且sql超时。
  2. 我的错误消息包含SQL。
  3. SQL有4个参数@p0,@p1,@p2,@p3
  4. 错误显示定义为

    的参数
    \r\nPositional parameters:  #0>Castle.Proxies.UserProxy #1>2 #2>2 #3>/MenuItem/Calendar #4>/MenuItem\r\n
    
  5. 如果我将sql复制到ssms查询中并替换1(值I 预期),2,2,'/ MenuItem / Calendar','MenuItem'然后是sql 马上回来。

  6. 目前正在发生什么事。

    请帮助

    RAIF


    修改


    基督怜悯,我发现了错误,我在global.asax中有一个onRequestEnd(或其他东西)。在那个事件处理程序中,我已经评论了关闭交易。登录时我正在更新user.lastlogindate,然后在下一页上尝试加载同一个用户。我认为因为交易没有被关闭所以它是锁定的。此外,因为我没有在部署上推送global.asax,这解释了为什么它在prod工作而不是在本地工作。


    地狱对于生产没有任何意义,因为它被编译了。随你。忘了它


    抱歉现有。

1 个答案:

答案 0 :(得分:1)

关于简单查询的超时(特别是因为你说当你运行SQL本身时它会立即返回),它可能是数据库服务器没有响应,或者是事务和锁定的某些问题。你在使用TransactionScope吗?

对于参数,这可能只是在提取代理的身份之前显示值。

您必须展示您正在做的事情以获得更准确的回复。