¿Hay alguna forma de ejecutar un enunciado SQL directamente desde las llamadas generadas por el marco de entidad? ¿O tendré que crear un procedimiento y luego llamarlo a través del marco de la entidad?Ejecutando sql en el marco de entidad?
Respuesta
Fue alrededor de google para esto mismo, el otro día, este es el ejemplo que encontré esperanza que ayuda
static void ExecuteSql(ObjectContext c, string sql)
{
var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
DbConnection conn = entityConnection.StoreConnection;
ConnectionState initialState = conn.State;
try
{
if (initialState != ConnectionState.Open)
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
finally
{
if (initialState != ConnectionState.Open)
conn.Close();
}
}
En EF 4.0 Esto es bastante fácil, porque hay nuevos métodos en el ObjectContext
que le permiten ejecutar comandos de tienda (es decir, SQL) directamente:
ver esto: ExecuteStoreCommand
Si usted todavía está utilizando EF 3.5 SP1 todavía se puede ejecutar una consulta directamente contra la base de datos si realmente quiere desea:
var econn = ctx.Connection as EntityConnection;
var dbconn = econn.StoreConnection;
en este punto se tiene acceso a una conexión (dbconn) a la base de datos subyacente, lo que puede utilizar código ADO.NET normal a ejecutar consultas etc.
Esperanza esto ayuda
Alex
@Alex James, por curiosidad, ¿sería eficiente para correr un poco de texto SQL completa del código, como en no debería haber gastos generales de rendimiento ¿no? Por decir, ejecutando el mismo código sql de texto completo directamente como una consulta en el estudio de administración sql.
ExecuteStoreQuery<>
y ExecuteStoreCommand
es lo que quiere:
using (NorthWindEntities ctx = new NorthWindEntities())
{
ctx.ExecuteStoreQuery<>()
ctx.ExecuteStoreCommand();
}
- 1. Cómo obtener el sql generado por el marco de entidad
- 2. Unión en el marco de la entidad
- 3. distintas en el marco Entidad
- 4. tipo complejo en el marco de entidad
- 5. dependencia circular en el marco de entidad
- 6. Procedimientos almacenados en el marco de entidad
- 7. SQL FileStream + tienda entidad Marco de archivos de gran tamaño
- 8. Entidad Proxy Marco
- 9. Entidad marco POCO
- 10. ¿Cómo es el rendimiento del marco de entidad 4 frente al marco de entidad 3.5?
- 11. Entidad marco de resultados de consulta duplicados
- 12. Marco de la entidad y el problema
- 13. marco Entidad - conseguir entidad por su nombre
- 14. marco de la entidad: filtro condicional
- 15. Entidad marco genérico
- 16. Marco de entidad en Arquitecturas estratificadas
- 17. C#, marco de la entidad, incremento automático
- 18. Mapeo de Ingreso mesas en el marco de la entidad
- 19. Entidad marco dinámico donde Cláusula
- 20. Marco de la entidad y ACTUALIZAR CASCADA
- 21. Actualizar un procedimiento almacenado en el marco de entidad 3.5
- 22. usando hashset en el marco de la entidad
- 23. ¿Dónde colocar el marco de la entidad en nuestra solución?
- 24. Encriptar ConnectionString en el marco de entidad (primer código)
- 25. Claves foráneas en el marco de entidad 4.1
- 26. Cómo detener marco de la entidad de almacenamiento en caché
- 27. referencia nula en la Entidad Migración Marco
- 28. asignación de varias tablas a una única clase de entidad en el marco de la entidad
- 29. Cómo actualizar las propiedades de navegación de la entidad en el marco de la entidad
- 30. ¿Cómo uso el marco de entidad con datos jerárquicos?
Yo aconsejaría el uso de ExecuteStoreCommand() en ObjectContext en lugar del ExecuteSql anterior() –