【问题标题】:ASP.Net Web API 2 method not showing correct data but row count is correctASP.Net Web API 2 方法未显示正确数据但行数正确
【发布时间】:2016-02-10 06:52:40
【问题描述】:

我在 Repository 类中编写了一个方法,为此我在 Web API 项目中创建了一个控制器。 以下是我的模型类:

namespace Meijer.Merch.Space.Data
{
    public class FloorplanAnalyst
    {
        public int EmpId { get; set; }

        public string EmpName { get; set; }
    }
}

以下是Repository类中的方法:

public IEnumerable<FloorplanAnalyst> GetFloorplanAnalyst()
        {
            return this.Database.SqlQuery<FloorplanAnalyst>("GET_FLOORPLAN_ANALYSTS").ToList();
        }

以下是我的控制器方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace SpaceWebApi.Controllers
{
    /// <summary>
    /// Controller used for the retrieving of FloorplanAnalyst information
    /// </summary>
    public class FloorplanAnalystController : ApiController
    {
        private ISpaceRepository db = new SpaceRepository();

        /// <summary>
        /// Returns a list of FloorplanAnalysts.        
        public IEnumerable<FloorplanAnalyst> GetFloorplanAnalyst()
        {
            return db.GetFloorplanAnalyst();
        }
    }
}

但我得到以下记录作为我的结果(返回 27 行):

    {
        "EmpId": 0,
        "EmpName": null
      },
      {
        "EmpId": 0,
        "EmpName": null
      }
}

在 SQL Server 中,执行存储过程时会返回正确的数据。但在 Web API 端是不正确的。

【问题讨论】:

  • GET_FLOORPLAN_ANALYSTS 是存储过程吗?
  • 是的,它是一个存储过程

标签: c# asp.net asp.net-mvc asp.net-web-api2


【解决方案1】:

您遇到此问题是因为 FloorplanAnalyst 类中的 EmpIdEmpName 属性与您的 GET_FLOORPLAN_ANALYSTS 存储过程返回的列名称不匹配。

要解决此问题,请确保每个属性在存储过程的结果查询中都有一个关联的列名(与属性相同的名称)。

【讨论】:

  • 我无法更改存储过程的列名,但我需要在前端使用 EmpID 和 EmpName。我怎样才能使它成为可能?
猜你喜欢
  • 1970-01-01
  • 2018-06-14
  • 2012-06-26
  • 2018-11-01
  • 2013-04-28
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多