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();
}
}