Como gravar essa consulta de linq com a API Criteria ou QueryOver

É possível converter este código abaixo, escrito usando Query (linq) api para Criteria ou QueryOver API no NHibernate? Eu estou usando isso para formatar dados em DTO e também funciona com apenas uma viagem de ida e volta ao banco de dados.

Nota: Eu tentei transformers.aliastobean mas eu só posso usar um transformador de cada vez. É possível usar vários transformadores em uma consulta?

     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