Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Обработвайте множество резултати от съхранена процедура със SqlQuery

DbContext няма собствена поддръжка за материализиране на множество набори от резултати. Това обаче е сравнително лесно да се постигне чрез падане надолу до ObjectContext и с помощта на Translate метод за копиране на резултати от DbDataReader в обекти в модела на вашия домейн.

Ето малко примерен код. Това предполага вашия ReferrerStatisticResult е просто контейнер за двата списъка, наречен Set1 и Set2 . Очевидно коригирайте според действителния си модел на домейн.

// 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. Как да промените колона от Null на Not Null в таблицата на SQL Server - SQL Server / T-SQL урок, част 52

  2. Матрица на поддържаните версии на SQL Server

  3. Как да намеря порта за MS SQL Server 2008?

  4. Създайте изчислена колона, като използвате данни от друга таблица

  5. Как да извлека десетични знаци при закръгляване на средна стойност в SQL