У меня есть хранимая процедура как
pr ___ GetArchiveData
Выбрать * из ТАБЛИЦЫ1
ВЫБРАТЬ * ИЗ ТАБЛИЦЫ2
ВЫБРАТЬ * ИЗ ТАБЛИЦЫ 3
Я хочу получить этот набор результатов в наборе данных.Или получить доступ к значениям трех запросов выбора!У меня есть файл DBML, в котором при перетаскивании хранимой процедуры генерируется код следующим образом: -
global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.pr___GetArchiveData")]
public ISingleResult<pr___GetArchiveDataResult> pr___GetArchiveData([global::System.Data.Linq.Mapping.ParameterAttribute(DbType="UniqueIdentifier")] System.Nullable<System.Guid> projectID)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), projectID);
return ((ISingleResult<pr__Project_pr___GetArchiveData>)(result.ReturnValue));
}
В коде MVC3 Architecture + LINQ я написал код для получения набора результатов следующим образом.: -
using (HBDataContext hb = new HBDataContext())
{
System.Data.DataSet ds = new System.Data.DataSet();
String connString = connString;
var conn = new System.Data.SqlClient.SqlConnection(connString);
var cmd = conn.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "pr__GetArchiveData";
cmd.Connection.Open();
var mReader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
//var reader = cmd.ExecuteReader();
//using (System.Data.SqlClient.SqlDataReader mReader = cmd.ExecuteReader())
//{
// while (mReader.Read())
//{
// mReader.Read();
var tbl1 = hb.Translate<tbl1 >(mReader).ToList();
// mReader = cmd.ExecuteReader();
mReader.NextResult();
var tbl2 = hb.Translate<tbl2 >(mReader).ToList();
mReader.NextResult();
var tbl3 = hb.Translate<tbl3>(mReader).ToList();
// }
// }
}
Но во время работы выдает ошибку как -
"Недопустимая попытка вызвать NextResult, когда читатель закрыт."
IЯ не уверен, где я не прав !!
Я пытался использовать его как пока
(mReader.Read ())
Пожалуйста, предложите!!!!