在WebMethod JSON响应中限制LINQ中的值

时间:2013-02-06 04:40:57

标签: asp.net web-services

我需要在不使用某种代理对象的情况下限制我在Web方法中返回到我的页面的值。

假设我有一个Car类,其中包含以下类

    public class Car
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Engine { get; set; }
    }

和一个看起来像的网络方法;

[WebMethod]
public static List<Car> SearchCars(string search)
{
  var cars = car.All().Where(x => x.name.StartsWith(search));
  return cars.ToList();
}

返回我页面的列表具有所有属性。如何排除说..引擎属性,只返回ID和名称?

以上是一个纯粹的虚构示例,在现实世界中,我使用Subsonic3对象返回列表等。

1 个答案:

答案 0 :(得分:2)

您可以使用投影仅选择要返回的字段。像这样:

[WebMethod]
public static List<Car> SearchCars(string search)
{
  var cars = car.All().Where(x => x.name.StartsWith(search)).Select(x => new { x.Id, x.Name });
  return cars.ToList();
}