从nhibernate fetch集合中获取第一个元素

时间:2012-05-28 10:52:58

标签: c# linq nhibernate linq-to-nhibernate

我有一个实体除了其他信息外还有许多图像。这是一个2多。 在我需要首先从该集合加载到缓慢加载的情况下,我有以下查询来检索图像集合。

 List<Entity> data = session.Query<Entity>()
          .Fetch(x=>x.Photos)//here I need only first element
          .Fetch(x=>x.Features)
          .ToList();

2 个答案:

答案 0 :(得分:2)

利用linq的First()FirstOrDefault()方法为您完成任务

List<Entity> data = session.Query<Entity>()
           .Fetch(x=>x.Photos.First())//
           .Fetch(x=>x.Features)
           .ToList(); 

List<Entity> data = session.Query<Entity>()
               .Fetch(x=>x.Photos.FirstOrDefault())//
               .Fetch(x=>x.Features)
               .ToList(); 

在使用此方法之前也会阅读此内容:When to use .First and when to use .FirstOrDefault with LINQ?

答案 1 :(得分:1)

List<Entity> data = session.Query<Entity>()
          .Fetch(x=>x.Photos.FirstOrDefualt())//here I need only first element
          .Fetch(x=>x.Features)
          .ToList();