Linq & String.ToLower () странное поведение


У меня есть запрос на стороне сервера, который возвращает список отдельных городов из таблицы почтовых индексов.
Я использую WCF RIA Service.
Следующий запрос успешно возвращает 228 городов, когдаprovincename == ""

    public IQueryable<CityPM> GetCities(string provinceName)
    {
        return this.ObjectContext.ZipCodes.Where(z => z.Province.Contains(provinceName))
                                          .GroupBy(z => z.City)
                                          .Select(g => g.FirstOrDefault())
                                          .Select(zc => new CityPM() { ID = zc.ID, Name = zc.City });
    }

но если я использую метод ToLower (), как показано ниже, запрос возвращает 0 городов, когдаprovincename == "".

    public IQueryable<CityPM> GetCities(string provinceName)
    {
        return this.ObjectContext.ZipCodes.Where(z => z.Province.ToLower().Contains(provinceName.ToLower()))
                                          .GroupBy(z => z.City)
                                          .Select(g => g.FirstOrDefault())
                                          .Select(zc => new CityPM() { ID = zc.ID, Name = zc.City });
    }

Почему запрос ничего не возвращает?

Ответы на вопрос(3)

Ваш ответ на вопрос