Cómo escribir esta consulta de linq con Criteria o QueryOver API

¿Es posible convertir este código a continuación, escrito usando la API de Query (linq) a Criteria o API de QueryOver en NHibernate? Lo estoy usando para formatear datos en DTO, también funciona con un solo viaje de ida y vuelta a db.

Nota: Intenté transformers.aliastobean pero solo puedo usar un transformador a la vez. ¿Es posible usar transformador múltiple en una 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();

Respuestas a la pregunta(1)

Su respuesta a la pregunta