2011-03-21 8 views
6

¿Hay alguna manera de obligar a LINQ-2-SQL a compilar y almacenar en caché los planes para EntityRef?planes LINQ EntityRef y compilados

Desde perfiles internos estamos viendo una cantidad significativa de CPU utilizada para seguir compilando planes.

 
System.Reflection.Emit.DynamicMethod.CreateDelegate 
System.Data.Linq.SqlClient.ObjectReaderCompiler.Compile 
System.Data.Linq.SqlClient.SqlProvider.GetReaderFactory 
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Compile 
System.Data.Linq.CommonDataServices+DeferredSourceFactory`1.ExecuteKeyQuery 
System.Data.Linq.CommonDataServices+DeferredSourceFactory`1.Execute 
System.Linq.Enumerable.SingleOrDefault 
System.Data.Linq.EntityRef`1.get_Entity 

Preferiría usar ref de entidad, pero supongo que si no hay otra opción, podemos codificarlo a mano.

Respuesta

4

No, no hay forma de obligar a LINQ 2 SQL a compilar y almacenar consultas en caché para EntityRef o EntitySet.

No hay ganchos en la implementación para ello.

Si necesita usar CompiledQuery, tendrá que escribir su propio contenedor y ayudantes.

Cuestiones relacionadas