ASP.Net Web API 2 方法未显示正确数据但行数正确
ASP.Net Web API 2 method not showing correct data but row count is correct
我在 Repository class 中编写了一个方法,为此我在 Web API 项目中创建了一个 Controller。
以下是我的模型 class:
namespace Meijer.Merch.Space.Data
{
public class FloorplanAnalyst
{
public int EmpId { get; set; }
public string EmpName { get; set; }
}
}
存储库中的方法如下class:
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执行存储过程时返回服务器正确数据。但是在 Web API 端它是不正确的。
您遇到此问题是因为 EmpId
和 EmpName
属性进入 FloorplanAnalyst
class 与您的 GET_FLOORPLAN_ANALYSTS
存储过程返回的列名不匹配.
要解决此问题,请确保每个 属性 在存储过程的结果查询中都有一个关联的列名(与 属性 同名)。
我在 Repository class 中编写了一个方法,为此我在 Web API 项目中创建了一个 Controller。 以下是我的模型 class:
namespace Meijer.Merch.Space.Data
{
public class FloorplanAnalyst
{
public int EmpId { get; set; }
public string EmpName { get; set; }
}
}
存储库中的方法如下class:
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执行存储过程时返回服务器正确数据。但是在 Web API 端它是不正确的。
您遇到此问题是因为 EmpId
和 EmpName
属性进入 FloorplanAnalyst
class 与您的 GET_FLOORPLAN_ANALYSTS
存储过程返回的列名不匹配.
要解决此问题,请确保每个 属性 在存储过程的结果查询中都有一个关联的列名(与 属性 同名)。