Provavelmente vale a pena fazer a análise localmente em vez de no banco de dados, via
AsEnumerable
:var query = db.tb1.Select(tb => tb.dt)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.ParseExact(x, "yyyyMMdd",
CultureInfo.InvariantCulture));
A seleção inicial é para garantir que apenas a coluna relevante seja buscada, em vez de toda a entidade (apenas para que a maior parte seja descartada). Também evitei usar um tipo anônimo, pois parece não haver sentido aqui.
Observe como eu especifiquei a cultura invariável a propósito - você quase certamente não quer apenas usar a cultura atual. E eu mudei o padrão usado para análise, pois soa como sua fonte os dados estão em
yyyyMMdd
formato. Obviamente, se possível, você deve alterar o esquema do banco de dados para armazenar valores de data em uma coluna baseada em data, em vez de como texto.