Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obsługuj wiele wyników z procedury składowanej za pomocą SqlQuery

DbContext nie ma natywnej obsługi materializacji wielu zestawów wyników. Jednak jest to dość proste do osiągnięcia, przechodząc do ObjectContext i używając Translate metoda kopiowania wyników z DbDataReader na jednostki w Twoim modelu domeny.

Oto przykładowy kod. Zakłada się, że Twój ReferrerStatisticResult to tylko pojemnik na dwie listy o nazwie Set1 i Set2 . Oczywiście dostosuj do swojego rzeczywistego modelu domeny.

// Create container ready for the resultsets
var result = new RefererStatisticResult();

using (var myContext = new MyContext())
{
    // Create command from the context in order to execute
    // the `GetReferrer` proc
    var command = myContext.Database.Connection.CreateCommand();
    command.CommandType = System.Data.CommandType.StoredProcedure;
    command.CommandText = "[dbo].[GetReferrer]";
    // add in command parameters
    // (not shown)

    try
    {
        myContext.Connection.Open();
        var reader = command.ExecuteReader();

        // Drop down to the wrapped `ObjectContext` to get access to
        // the `Translate` method
        var objectContext = ((IObjectContextAdapter)myContext).ObjectContext;

        // Read Entity1 from the first resultset
        result.Set1 = objectContext.Translate<Entity1>(reader, "Set1", MergeOptions.AppendOnly);

        // Read Entity2 from the second resultset
        reader.NextResult();
        result.Set2 = objectContext.Translate<Entity2>(reader, "Set2", MergeOptions.AppendOnly);        
    }
    finally
    {
        myContext.Database.Connection.Close();
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie maszyn wirtualnych w chmurze z zarządzaną bazą danych w chmurze

  2. Wybór procesora dla SQL Server 2014 – część 2

  3. Wybierz dane za pomocą funkcji wartościującej tabelę w SQL Server

  4. Jak znaleźć kolejne wiersze na podstawie wartości kolumny?

  5. Kopiuj dane z Salesforce do SQL Server za pomocą Spectral Core