Copia di massa dei dati SQL dalla tabella su disco a una tabella in memoria

c# database sql sqlbulkcopy sql-server

Domanda

Voglio copiare periodicamente grandi record da un server SQL in una tabella in memoria. Ho bisogno di mettere questi campi che ho letto nei miei oggetti, non in un'altra tabella SQL o in un archivio di file flat. SQLBulkCopy è la soluzione per farlo?

Risposta popolare

creare una classe ..

public class MemoryObject
{
    public Int64 Id {get; set;}  
    public string OtherProperty {get; set;}     
}

quindi, utilizzare un SQLDataReader ...

public List<MemoryObject> GetMemoryObjects()
{
    using (SqlConnection connection = new SqlConnection("..."))
    {
        string sql = "query";

        SqlCommand command = new SqlCommand(sql.ToString(), connection);
        command.CommandTimeout = 3600;

        connection.Open();
        var memoryObjects = new List<MemoryObject>();

        using (var rdr = command.ExecuteReader())
            {
                    while (rdr.Read())
                    {
                        var memoryObject = new MemoryObject {
                            Id = rdr.GetInt64(0),
                            OtherProperty = rdr.GetString(1)
                        };
                        memoryObjects.Add(memoryObject);
                    }                   
            }
    }

    return memoryObjects;
}


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow