gpt4 book ai didi

nhibernate - ThenFetch 中的多次提取

转载 作者:行者123 更新时间:2023-12-04 20:53:19 25 4
gpt4 key购买 nike

我有一个与 <many-to-one> 相关联的实体并且该实体有两个 <many-to-one>我想立即获取。我可以通过这个查询来实现这一点:

 var tshead = session.Query<MainEntity>()
.Fetch(r=>r.FirstAssoc).ThenFetch(p=>p.Other)
.Fetch(r=>r.FirstAssoc).ThenFetch(p=>p.Another)
.Take(10)
.ToList();

正如你所看到的,我不得不写了两次 .Fetch(r=>r.FirstAssoc)我确定我可以避免这种情况,但我不知道如何。任何的想法 ?

谢谢 !

最佳答案

如果您选择一个特定的“MainEntity”,那么您可以像这样使用 QueryOver 来完成它:

 FirstAssoc firstAssoc = null;
Other other = null;
Another another = null;

tshead = session.QueryOver<MainEntity>()
.Where(x => x.Id == id)
.JoinAlias(x => x.FirstAssoc, () => firstAssoc)
.JoinAlias(() => firstAssoc.Other, () => other)
.JoinAlias(() => firstAssoc.Another, () => another)
.SingleOrDefault();

我在这里写过:

http://www.philliphaydon.com/2011/04/nhibernate-querying-relationships-are-depth/

你不能这样做:

一对多

只有一对多一。

我不确定你能不能做多对多一,转换那太困难了。

关于nhibernate - ThenFetch 中的多次提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com