我有一个实体,其属性定义为公式
public class Entity {
protected virtual int MyFormula1 { get; set;}
protected virtual int MyFormula2 {get; set;}
public class EntityMap : ClassMap<Entity>
{
//.... other property mappings
Map(x => x.MyFormula1).LazyLoad().Formula("<sql statement>");
Map(x => x.MyFormula2).LazyLoad().Formula("<sql statement>");
}
}
where sql statement is of the order select count(*) from OtherEntity where ...
我已将两个属性MyFormula1
和MyFormula2
明确标记为 Lazy ,因为我不希望每次加载Entity
实例时都计算它们。
但是,当我使用Future加载实体列表(使用条件)时,会触发单独的SQL以获取上述公式值即使条件
.setFetchMode("this.MyFormula1", FetchMode.Eager)
.setFetchMode("this.MyFormula2", FetchMode.Eager)
我的问题是在这些情况下:如何在一个批次中加载这些属性 使用期货?
在单个数据库调用中