У меня в базе определено несколько хранимых процедур. Я могу получить данные из хранимых процедур которые возвращают только одну таблицу:
using (var context = new UmkCmsContext())
{
var dt = new DataTable();
ProductList = new List<ProductListNode>();
#region ProcedureData
var conn = context.Database.Connection;
var connectionState = conn.State;
if (connectionState != ConnectionState.Open)
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "GetProductsInCategory";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@host", _httpContext.Request.Url.Host));
cmd.Parameters.Add(new SqlParameter("@catalogIdentifer", catalogIdentifer));
cmd.Parameters.Add(new SqlParameter("@categoryIdentifer", categoryIdentifer));
using (var reader = cmd.ExecuteReader())
{
dt.Load(reader);
}
}
#endregion
}
Но если хранимая процедура возвращает несколько таблиц, у меня начинаются проблемы. На локальном сервере я могу их получить таким образом:
var connStr = context.Database.Connection.ConnectionString;
using (var context = new UmkCmsContext())
{
var dsMain = new DataSet();
using (var conn = new SqlConnection(connStr))
{
var sqlComm = new SqlCommand("GetProductViewModel", conn);
sqlComm.Parameters.AddWithValue("@host", Request.Url.Host);
sqlComm.Parameters.AddWithValue("@productIdentifer", productIdentifer);
sqlComm.CommandType = CommandType.StoredProcedure;
var da = new SqlDataAdapter { SelectCommand = sqlComm };
da.Fill(dsMain);
}
}
Но при публикации сайта на хостинге(Azure) такой способ е работает т.к. ConnectionString не содержит пароля.
Мне важно получить данные в "сыром" виде(без создания объекта и его заполнения).
Кто нибудь сталкивался с такой проблемой?