2011-12-28 18 views
23

Quiero usar la función ExecuteStoreQuery de Entity Framework y me pregunté si mi variable de contexto no tenía el método ExecuteStoreQuery.ExecuteStoreQuery con Dbcontext

Así que descubrí que es un método de la clase ObjectContext, pero ya he usado DbContext para mi aplicación. Simplemente había intentado cambiar DbContext con ObjectContext, pero traía algunos errores (por ejemplo, en ObjectContext no es el método OnModelCreating).

¿Cómo puedo usar ExecuteStoreQuery con DbContext y si no puedo, hay alguna alternativa de ExecuteStoreQuery en DbContext?

Respuesta

37

A DbContext es simplemente una envoltura alrededor del ObjectContext.

Todavía puede acceder el original ObjectContext utilizando IObjectContextAdapter

(dbContext as IObjectContextAdapter).ObjectContext; 
+0

que utiliza este método con éxito en mi solicitud. – Hammerstein

34

Quiero añadir que creo que ahora el método correcto es:

dbContext.Database.SqlQuery<T>(string sql); 
+1

Si desea hacer un seguimiento de los cambios en los objetos devueltos, debe considerar dbContext.tablename.SqlQuery (...) donde tablename es su nombre de colección. (es decir, un DbSet) –

Cuestiones relacionadas