fluent-nhibernate中的映射公式
Im有一个名为事件的实体:fluent-nhibernate中的映射公式,nhibernate,mapping,formula,lazy-loading,Nhibernate,Mapping,Formula,Lazy Loading,Im有一个名为事件的实体: public virtual int ID { get;set;} public virtual string Name { get;set;} public virtual Event Master { get;set;} public virtual int ChildrenCount { get;set;} Childrencount映射为: Map(x => x.ChildrenCount).LazyLoad().Formula("(Se
public virtual int ID { get;set;}
public virtual string Name { get;set;}
public virtual Event Master { get;set;}
public virtual int ChildrenCount { get;set;}
Childrencount映射为:
Map(x => x.ChildrenCount).LazyLoad().Formula("(Select count(*) from Events Where Events.Master_id=Event_id)");
有时,我想现在输入ChildrenCount的值,并将Fetchmode设置为Eager
store.SetFetchMode("ChildrenCount",NHibernate.FetchMode.Eager);
但这个系统仍然懒散
有什么帮助吗?您可以在HQL中使用“获取所有属性”提示:
from Event fetch all properties
这将加载您所有的惰性属性。我不确定这是否解决了问题。到现在为止,我解决了这个问题,创建了一个列表,然后遍历它,对每个列表执行选择计数。我只是想知道为什么store.SetFetchMode(“ChildrenCount”,NHibernate.FetchMode.Eager);没有任何效果,我想它正好解决了你所描述的问题。SetFetchMode用于集合关联,而不是像ChildrenCount那样用于惰性属性。但是听起来你可以用很多方法来解决你的问题,比如用投影代替。