NHibernate Queryover-如何仅返回子集合
我在下面的nhibernate queryover查询中遇到了困难。我可能把事情复杂化了,但问题是:NHibernate Queryover-如何仅返回子集合,nhibernate,queryover,Nhibernate,Queryover,我在下面的nhibernate queryover查询中遇到了困难。我可能把事情复杂化了,但问题是: 我有一个名为AuctionStatistic的实体链接到拍卖(这是单向的,我没有从拍卖返回到统计的链接) 我想查询统计表,找到所有拍卖ID,并仅收回那些满足某个阈值的拍卖ID,即按视图排名的前500名拍卖 一旦我得到了top X(在本例中,我硬编码到10000个视图),我想收回拍卖id和名称。对于这个特定的查询,我不需要存储在统计表中的任何数据(尽管这在其他地方使用并且不是多余的) 我想我可
- 我有一个名为AuctionStatistic的实体链接到拍卖(这是单向的,我没有从拍卖返回到统计的链接)
- 我想查询统计表,找到所有拍卖ID,并仅收回那些满足某个阈值的拍卖ID,即按视图排名的前500名拍卖
- 一旦我得到了top X(在本例中,我硬编码到10000个视图),我想收回拍卖id和名称。对于这个特定的查询,我不需要存储在统计表中的任何数据(尽管这在其他地方使用并且不是多余的)
var auctions=\u session.QueryOver().Where(c=>c.ViewCount>10000).Fetch(x=>x.Auction).Eager.Select(x=>x.Auction);
有人能提出更好的方法吗
谢谢
JP如果没有双向,这可能是你最好的选择
Auction auctionAlias = null;
AuctionDTO dto = null;
var auctionDtos = _session.QueryOver<AuctionStatistic>()
.Where(c => c.ViewCount > 10000)
.JoinAlias(x => x.Auction, () => auctionAlias)
.SelectList(list => list
.Select(() => auctionAlias.id).WithAlias(() => dto.id)
.Select(() => auctionAlias.name).WithAlias(() => dto.name))
.TransformUsing(Transformers.AliasToBean<AuctionDTO>())
.List<AuctionDTO>();
auctionAlias=null;
AuctionDTO dto=null;
var auctionDtos=\u session.QueryOver()
.其中(c=>c.ViewCount>10000)
.JoinAlias(x=>x.Auction,()=>auctionAlias)
.SelectList(list=>list
。选择(()=>auconationalias.id)。使用别名(()=>dto.id)
。选择(()=>auconationalias.name)。使用别名(()=>dto.name))
.TransformUsing(Transformers.AliasToBean())
.List();
如果没有双向,这可能是您最好的选择
Auction auctionAlias = null;
AuctionDTO dto = null;
var auctionDtos = _session.QueryOver<AuctionStatistic>()
.Where(c => c.ViewCount > 10000)
.JoinAlias(x => x.Auction, () => auctionAlias)
.SelectList(list => list
.Select(() => auctionAlias.id).WithAlias(() => dto.id)
.Select(() => auctionAlias.name).WithAlias(() => dto.name))
.TransformUsing(Transformers.AliasToBean<AuctionDTO>())
.List<AuctionDTO>();
auctionAlias=null;
AuctionDTO dto=null;
var auctionDtos=\u session.QueryOver()
.其中(c=>c.ViewCount>10000)
.JoinAlias(x=>x.Auction,()=>auctionAlias)
.SelectList(list=>list
。选择(()=>auconationalias.id)。使用别名(()=>dto.id)
。选择(()=>auconationalias.name)。使用别名(()=>dto.name))
.TransformUsing(Transformers.AliasToBean())
.List();
你能把它做成双向的吗?我认为,如果你选择这样的对象,它只会拉拍卖的id。如果您只需要id和名称,我会将其投影到dto中。您能使其双向吗?我认为,如果你选择这样的对象,它只会拉拍卖的id。如果您只需要id和名称,我会将其投影到dto中。