问题描述
|
我有一个非常复杂的对象图,我想一次加载
猛扑
样本的Daylog具有Daylog测试,Daylog测试具有Daylog
结果
Daylog测试具有Testkey,Daylog结果具有Resultkey,以及
TestKeys有结果键。
我正在使用QueryOver API和Future将它们全部作为一个查询运行,
以及NHibernate实例化整个数据所需的所有数据
NHProf已验证,正在返回图形IS。
public static IList<Daylog> DatablockLoad(Isession sess,ICollection<int> ids)
{
var daylogQuery = sess.QueryOver<Daylog>()
.WhereRestrictionOn(dl => dl.DaylogID).IsIn(ids.ToArray())
.Fetch(dl => dl.Tests).Eager
.TransformUsing(Transformers.DistinctRootEntity)
.Future<Daylog>();
sess.QueryOver<DaylogTest>()
.WhereRestrictionOn(dlt =>
dlt.Daylog.DaylogID).IsIn(ids.ToArray())
.Fetch(dlt => dlt.Results).Eager
.Inner.JoinQueryOver<TestKey>(dlt => dlt.TestKey)
.Fetch(dlt => dlt.TestKey).Eager
.Inner.JoinQueryOver<ResultKey>(tk => tk.Results)
.Fetch(dlt => dlt.TestKey.Results).Eager
.Future<DaylogTest>();
sess.QueryOver<DaylogResult>()
.Inner.JoinQueryOver(dlr => dlr.DaylogTest)
.WhereRestrictionOn(dlt =>
dlt.Daylog.DaylogID).IsIn(ids.ToArray())
.Fetch(dlr => dlr.ResultKey).Eager
.Fetch(dlr => dlr.History).Eager
.Future<DaylogResult>();
var daylogs = daylogQuery.ToList();
return daylogs;
}
但是,我仍然以代理来表示这种关系
即使我正在专门加载,也只能在Testkey和ResultKey之间
这种关系。
我认为整个查询可能代表着一个穷人
了解QueryOver API,因此我希望获得所有建议
关于它,但是首先,我想了解为什么我得到了代理而不是
结果列表,稍后我尝试获取时
daylogresult.resultkey.testkey.results。
有什么帮助吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)