【问题标题】:Are NHibernate 3 future queries compatible with AliasToBeanResultTransformerNHibernate 3 未来的查询是否与 AliasToBeanResultTransformer 兼容
【发布时间】:2013-06-02 05:02:51
【问题描述】:

我在一个项目中使用 NHibernate 3,并且需要调用两个存储过程并以 DTO 结构返回结果。出于性能原因,我使用了 Future 查询,例如

            var contractstaffroles = GetSession()
                .CreateSQLQuery(string.Format("exec up_List_ContractStaffRole_By_Staff @staffId = :staffId"))
                .SetParameter("staffId", staffId)
                .SetResultTransformer(new AliasToBeanResultTransformer(typeof(ContractStaffRoleReadOnlyData)))
                .Future<ContractStaffRoleReadOnlyData>().ToList();

            var contractstaffroleperiods = GetSession()
                .CreateSQLQuery(string.Format("exec up_List_ContractStaffRolePeriods_By_Staff @staffId = :staffId"))
                .SetParameter("staffId", staffId)
                .SetResultTransformer(new AliasToBeanResultTransformer(typeof (ContractStaffRolePeriodReadOnlyData)))
                .Future<ContractStaffRolePeriodReadOnlyData>().ToList();

var cnt = contractstaffroles.Count();

第一个查询正确地从存储过程返回记录。但是,生成的 DTO 是空的,即没有设置属性设置器。当我删除 Future 关键字时,DTO 被正确填充......但这会导致在两个连接上对数据库进行两次调用。那么在 Nhibernate 中是否不能使用带有转换器的未来查询?

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    有一个bug in JIRA (3222)。在 Stackoverflow 上询问 this question 后,Bryan Pedlar 报告了它。

    【讨论】:

    • 非常感谢。我想知道他们什么时候会修复它。报告于 2012 年 12 月。
    • 不幸的是,即使使用 NH 3.3.3.4000,它仍然没有修复 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2015-10-14
    • 2017-01-05
    • 2013-09-18
    相关资源
    最近更新 更多