我有一个带有WebApi方法的 MVC4 应用程序,它从数据库中获取整个表数据。现在我想从中只提取两列。我该怎么做?
我知道阵列将用于这样做,但不知道.net中的语法。 这是我的WebAPi函数,它从SQL服务器数据库获取整个表数据:
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;
}
}
}
}
答案 0 :(得分:2)
您可以使用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
实体类具有Name
和Id
属性。根据您的实际属性名称更新该部分。