linq selecciona artículos de colección infantil

A continuación están mis clases. Tengo un producto que contiene lista de días. Cada día tiene una propiedad de la ciudad.

Necesito crear una consulta de linq que me dé las distintas ciudades que se utilizan en todos mis productos en el sistema.

Probé algo como esto pero no 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; }
   }

Respuestas a la pregunta(1)

Su respuesta a la pregunta