【问题标题】:Model returning null property values MVC C#模型返回空属性值 MVC C#
【发布时间】:2019-01-14 18:39:41
【问题描述】:

我有一个这样的模型:

public class ProdListModel
{

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

}

我的代码从数据库中提取,应该循环遍历这些值并将它们添加到一些 var 列表中:

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

单独在数据库上运行查询会返回一个值列表,所以我知道数据在那里,只是由于某种原因没有填充模型。我错过了什么?

【问题讨论】:

    标签: c# sql model-view-controller model


    【解决方案1】:

    微软说

    Database.SqlQuery 方法 创建将返回的原始 SQL 查询 给定泛型类型的元素。 类型可以是任何具有 与从返回的列的名称匹配的属性 查询,也可以是简单的原始类型。

    您必须进行一些小的更改,可以将模型属性与 sql 列同步或在查询中使用别名

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

          //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 Method Microsoft Docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2021-12-14
      • 1970-01-01
      • 2021-08-16
      相关资源
      最近更新 更多