2017-09-16 62 views
0

表中的特定列我有一個MVC4應用程序與方法的WebAPI是從數據庫中獲取整個表的數據。現在我想從中只提取兩列。我該怎麼做?如何獲得的WebAPI方法

我知道陣列將被用來做,但不知道在.net中的語法。 這是從SQL服務器數據庫中獲取整個表的數據我的WebAPI功能:

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

     } 

    } 
} 

回答

2

可以使用Select方法和做只有那些你需要的DTO的對象屬性/投影視圖模型來表示這個數據,在你的LINQ查詢。

因此,創建一個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屬性。根據您的實際屬性名稱更新該部分。

+1

是的,它解決了我的感謝一大堆問題... –