linq seleciona itens da coleção filho

Abaixo estão minhas aulas. Eu tenho um produto que contém uma lista de dias. Cada dia tem uma propriedade da cidade.

Preciso criar uma consulta linq que me forneça as cidades distintas usadas em todos os meus produtos no sistema.

Eu tentei algo parecido com isto, mas não funciona:

var cities = from product in NHibernateSession.Linq<Product>() select new { city = product.Days.Where(d => d.City != null).Distinct() }; //This returns the day items but i need distinct cities

   public class Product : EntityBase
   {
        public virtual string Name { get; set; }
        public virtual IList<ProductDayDefinition> Days { get; set; }
   }

   public class ProductDayDefinition : EntityBase
   {
        public virtual Product Product { get; set; }
        public virtual City City { get; set; }
   }

questionAnswers(1)

yourAnswerToTheQuestion