Jak napisać zapytanie linq za pomocą API Criteria lub QueryOver

Czy jest możliwe przekonwertowanie tego kodu poniżej, napisany przy użyciu Query (linq) api do Criteria lub QueryOver API w NHibernate? Używam tego do formatowania danych w DTO, ale działa on tylko w jedną podróż do db.

Uwaga: Próbowałem transformers.aliastobean, ale mogę używać tylko jednego transformatora na raz. Czy możliwe jest użycie wielu transformatorów w jednym zapytaniu?

     from entityType in Provider.GetSession().Query<crmEntityType>()
     .Fetch(x => x.Association)
     .Fetch(x => x.Fields)
     .AsEnumerable()
     where instanceIDs.Contains(entityType.Instance.instanceID)
     select new EntityTypeDTO()
     {
     ID = entityType.ID,
     Title = entityType.Title,
     Association = entityType.Association.Distinct().Select(asc => asc.ID).ToArray<int>(),
     Fields = entityType.Fields.Distinct().Select(fi => new CustomFieldDTO { 
 ID = fi.ID,
 Name =  fi.Name,
 Value = fi.Value,
 EntityType = fi.EntityType.ID,
 Type = fi.Type 
}).ToList()
     }).ToList();

questionAnswers(1)

yourAnswerToTheQuestion