NHibernate:有条件地加载计算列

标签 nhibernate subquery calculated-columns

我有以下属性(property)

<property name="Allocated" type="decimal" formula="(select sum(a.AllocationAmount) from  Allocation a where  a.TransactionId = TransactionId)" />

这会加载已分配给发票的交易金额,效果很好。

但是,大多数情况下我并不关心这个数额。有没有办法有条件地加载这个计算列?或者有没有办法将这个计算列添加到 HQL/Critera,这样我就可以让它成为我运行的某些特定查询的一部分?

最佳答案

在 NH 3.0 中,您可以定义惰性属性,它们的工作方式与它们听起来完全一样(参见 http://ayende.com/Blog/archive/2010/01/27/nhibernate-new-feature-lazy-properties.aspx)

但是,这看起来更适合查询,或者可能是充当 View 的伪实体。

关于NHibernate:有条件地加载计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3314980/

相关文章:

mysql - 在 Zend 框架 2 的子查询中使用 limit 和 offset

mysql - 使用子查询组合 2 个 mysql 查询

sql-server - 将计算列转换为常规列

Sharepoint 日期时间计算列

nhibernate - 没有自动映射 SQL 异常的 Fluent NHibernate,关键字 'User' 附近的语法不正确

unit-testing - 带有 SQLite 内存数据库和 NHibernate 的 TransactionScope

mysql - 需要一个可以过滤结果的 MySQL 查询

excel - Dax-计算列中变量的语法错误

c# - Fluent NHibernate 映射到 SQL Server CHAR(10) ID 列

c# - NHibernate 使用存储过程或映射