Модель, возвращающая нулевые значения свойств MVC C # - PullRequest
0 голосов
/ 14 января 2019

У меня есть такая модель:

public class ProdListModel
{

        public string Col1 { get; set; }
        public string Col2 { get; set; }

}

И мой код извлекается из БД и должен циклически перебирать значения и добавлять их в некоторые списки переменных:

var prodind = new List<string>();
var prodtyp = new List<string>();

var productlookup = db.Database.SqlQuery<ProdListModel>("select OPIS_Price_Import.ProductIndicator, OPIS_Price_Import.ProductType from OPIS_Price_Import INNER JOIN OPISCodes ON OPIS_Price_Import.ProductIndicator = OPISCodes.productgroup where OPIS_Price_Import.City = @cn and OPIS_Price_Import.ActualProduct = @ap", new SqlParameter("@cn", item.CityName), new SqlParameter("@ap", thing)).ToList();

foreach (var proditems in productlookup) {
    prodind.Add(proditems.Col1);
    prodtyp.Add(proditems.Col2);
}

Выполнение запроса к базе данных само по себе возвращает список значений, поэтому я знаю, что данные там есть, просто по какой-то причине модель не заполняется. Чего мне не хватает?

1 Ответ

0 голосов
/ 14 января 2019

Microsoft говорит ,

Database.SqlQuery Method Создает необработанный SQL-запрос, который будет возвращать элементы данного универсального типа. Тип может быть любого типа, который имеет свойства, которые соответствуют именам столбцов, возвращаемых из query , или может быть простым примитивным типом.

Необходимо внести небольшие изменения, можно синхронизировать свойства модели со столбцами sql или использовать псевдоним в запросе

public class ProdListModel
{
   public string ProductIndicator { get; set; }
   public string ProductType { get; set; }
}

OR

      //Sql alias , ProductIndicator AS Col1, ProductType AS Col2
      var productlookup = db.Database.SqlQuery<ProdListModel>("select OPIS_Price_Import.ProductIndicator AS Col1, OPIS_Price_Import.ProductType AS Col2 from OPIS_Price_Import INNER JOIN OPISCodes ON OPIS_Price_Import.ProductIndicator = OPISCodes.productgroup where OPIS_Price_Import.City = @cn and OPIS_Price_Import.ActualProduct = @ap", new SqlParameter("@cn", item.CityName), new SqlParameter("@ap", thing)).ToList();

Database.SqlQuery Метод Microsoft Docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...