Как использовать DbContext для вызова хранимой процедуры и сопоставления результирующего набора со свойствами модели - PullRequest
0 голосов
/ 03 января 2019

Я использую DbContext для вызова хранимой процедуры в моем приложении MVC.Ниже приведен код, который я использовал для вызова хранимой процедуры и сопоставления со свойствами моей модели.

List<myModel> _listMyModel = new List<myModel>();
using (var ctx = new DbContext("ConnectionString1"))
{
    var param = new SqlParameter
    {
        ParameterName = "@Param",
        Value = strLob,
        SqlDbType = System.Data.SqlDbType.VarChar
    };

    ctx.Database.CommandTimeout = 0;
    _listMyModel = ctx.Database.SqlQuery<myModel>("exec MyProc @Param", param).ToList();

Но проблема здесь в том, что если в наборе результатов хранимой процедуры есть некоторое пространство или тип данных отличается, он выдаетисключение.

Мне просто нужно вместо этого использовать это, есть ли другой способ сопоставить результирующий набор со свойствами модели?

1 Ответ

0 голосов
/ 16 июля 2019

Я нашел один сценарий для вышеупомянутого.Получите набор результатов с помощью обычной команды sql и заполните datatable.После этого используйте подход entitytomodel, чтобы настроить конкретный столбец и задать его в свойствах общего списка.

например: как показано ниже:

 var dataTable = _dbLibrary.GetDataTable(1, "Proc_Name", Parameters);
            if (dataTable.Rows.Count > 0)
            {
                _listGenric = (from DataRow row in dataTable.Rows
                select new GenericList
                {
                     ListItem1 = row["Column Name"].ToString(),

                }).ToList();
            }

И этот подход работает для меня.

...