@ haim770, your answer helped me on the right track. Just as a matter of interest, I had to change two more things.
When I just add a Select projector, I get the following runtime error

So, Select expects the projected type to be IEnumerable, so I could do this, and everything would be cool:
public class CityDTO { public string CityName { get; set; } public string StateName { get; set; } public IEnumerable<string> Trainstations { get; set; }
Now this works great:
public List<CityDTO> GetCities() { using (var db = new CitysDataEntities()) { var cities = db.Cities; var query = (from city in cities select new CityDTO { CityName = city.Name, Trainstations = city.TrainStations.Select(ts => ts.Name)
However, after some further reading, I decided to use IQueryable, which also has a Select method.
The reason for this is that IQueryable.Select is under System.Linq, and IEnumerable.Select is in the System.Collections namespace. This is important, because IQueryable.Select is optimized for execution with all filters on the server and returns only the result to the client, whereas IEnumerable.Select loads the objects into the client first before filtering.
IEnumerable Vs IQueryable
So the result of this is
public class CityDTO { public string CityName { get; set; } public string StateName { get; set; } public IQueryable<string> Trainstations { get; set; }
and
public List<CityDTO> GetCities() { using (var db = new CitysDataEntities()) { var cities = db.Cities; var query = (from city in cities select new CityDTO { CityName = city.Name, Trainstations = city.TrainStations.Select(ts => ts.Name).AsQueryable()
Now when I add filters, they will be applied on the server side.
MSDN - Queryable.Select
MSDN - Enumerable.Select