EF 4.3.1 y EF 5.0 DbSet.Local es más lento que una consulta de base de datos real

Tengo una base de datos con una tabla de aproximadamente 16,500 ciudades y un modelo de datos de EF (Database-First) para esa base de datos. Los precargo en la memoria con el código:

Db.Cities.Load()

... luego, cuando es hora de usarlos, he intentado cada una de las siguientes consultas:

Dim cities() As String = Db.Cities.Select(Function(c) c.CityName).ToArray

Dim cities() As String = Db.Cities.Local.Select(Function(c) c.CityName).ToArray

La primera consulta es rápida (~ 10ms), pero la segunda tarda aproximadamente 2,3 segundos en ejecutarse la primera vez (aunque es más rápida que la primera consulta cuando se llama después de eso).

Esto no tiene sentido porque el Analizador de SQL Server verifica que la primera consulta está llegando a la base de datos en otra máquina, ¡pero la segunda no!

He intentado apagarDb.Configuration.AutoDetectChangesEnabled, y he intentado pre-generar las vistas.

Que puedo hacer para hacer.Local ¿Más rápido? (No todos los clientes que ejecuten esta aplicación estarán en una LAN rápida).

Respuestas a la pregunta(3)

Su respuesta a la pregunta