Si necesita esto, es más probable que esté haciendo algo inesperado. La iteración simple a través del resultado materializado de la consulta debe ser lo que necesita, es la forma ORM. Si no te gusta, usa SqlCommand
directamente.
DbContext API se ha simplificado y, debido a eso, no contiene muchas funciones disponibles en ObjectContext API. Acceder al lector de datos es uno de ellos. Usted puede tratar de convertir a DbContext
ObjectContext
y utilizar la API más complejo:
ObjectContext objContext = ((IObjectContextAdapter)dbContext).ObjectContext;
using (var connection = objContext.Connection as EntityConnection)
{
// Create Entity SQL command querying conceptual model hidden behind your code-first mapping
EntityCommand command = connection.CreateCommand();
command.CommandText = "SELECT VALUE entity FROM ContextName.DbSetName AS entity";
connection.Open();
using (EntityDataReader reader = command.ExecuteReader(CommandBehavior.SequentialAccess))
{
...
}
}
Pero pura forma ADO.NET es mucho más fácil y más rápido debido a que el ejemplo anterior sigue utilizando la cartografía de consulta a consulta SQL:
using (var connection = new SqlConnection(Database.Connection.ConnectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM DbSetName";
connection.Open();
using(SqlDataReader reader = command.ExecuteReader())
{
}
}
Por qué no acaba de obtener los objetos y serializar los a CSV? – R0MANARMY
No sé cuántos objetos habrá, por lo que un lector de datos detiene el llenado de la memoria del servidor. –
Al mirar un poco, es posible que no pueda acceder fácilmente, hay un [ExecuteDbDataReader] (http://msdn.microsoft.com/en-us/library/system.data.common.dbcommand.executedbdatareader (v = VS.90) .aspx), pero está protegido, por lo que probablemente no deba tratar de conseguirlo. Si esto no se hace con mucha frecuencia y/o si la consulta no es demasiado costosa, puede intentar buscar los resultados de la consulta para asegurarse de no tener demasiados objetos en la memoria a la vez. – R0MANARMY