【问题标题】:How to get Specific column of a table in webAPI method如何在 webAPI 方法中获取表格的特定列
【发布时间】:2017-09-16 17:02:03
【问题描述】:

我有一个带有 WebApi 方法的 MVC4 应用程序,该方法从数据库中获取整个表数据。现在我只想从中提取两列。我该怎么做?

我知道将使用数组来执行此操作,但不知道 .net 中的语法。 这是我的 WebAPi 函数,它从 SQL Server 数据库中获取整个表数据:

namespace BRDCEP_MIS.Areas.BRDCEP.Controllers
{
    public class WebApiController : ApiController
    {

        //api get method.

        //[Route("WebApi/GetPscTargets")]

        public HttpResponseMessage Get() {
            using (ApplicationDbContext db = new ApplicationDbContext())
            {

                List<PscDistrictTargets> xx = new List<PscDistrictTargets>();
                xx = db.PscDistrictTargetss.ToList();
                //xx.ID = Convert.ToString(DATA);
                HttpResponseMessage response = new HttpResponseMessage();
                response = Request.CreateResponse(HttpStatusCode.OK, xx);
                return response;
            }

        }

    }
}

【问题讨论】:

    标签: c# arrays sql-server asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    您可以使用Select 方法并仅对您需要的那些属性进行投影,以在您的 LINQ 查询中将这些属性映射到 DTO/视图模型的对象以表示此数据。

    因此,创建一个 DTO 类来仅使用这些属性来表示您想要的数据,

    public class MyDto
    {
        public int TargetId { set; get; }
        public string TargetName { set; get; }
    }
    

    现在更新您的 LINQ 查询,使用 Select 方法仅获取那些属性并投射我们的 dto 对象。

    var items = db.PscDistrictTargetss
                  .Select(f => new MyDto { TargetName = f.Name, 
                                           TargetId = f.Id})
                  .ToList();
    return Request.CreateResponse(HttpStatusCode.OK, items );
    

    假设PscDistrictTargets 实体类具有NameId 属性。根据您的实际属性名称更新该部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2023-01-21
      • 2013-07-09
      • 2020-10-02
      相关资源
      最近更新 更多