通过Web服务返回linq结果

时间:2011-04-06 12:11:03

标签: asp.net web-services

我正在尝试在一个从查询中返回数据的Web服务中使用Linq。如 从Linq到Sql的数据返回是IEnumerable,这是不可能的 轻松获取数据集。什么是返回数据的最佳格式?

 DataClassesDataContext Dac = new DataClassesDataContext();
        Dac.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionCs"].ConnectionString;
       var query = from record in Dac.RetrieveWorkshops(WorkshopCode, Name)  select  record;

3 个答案:

答案 0 :(得分:0)

Web服务代理将集合实例化为数组,因此我养成了定义“数据传输对象”并返回那些DTO的IEnumerable的习惯。在您的情况下,您可以定义一个WorkshopDTO对象,该对象仅包含您想要返回的公共属性,并让您的LINQ查询根据它读取的每个记录构造它们。然后你的客户端代理将看到一个WorkshopDTO的数组来操纵。

答案 1 :(得分:0)

您可以将数据填充到对象中,并在Web Service中返回该对象的列表。

示例:

public class WorkshopEntity
{
     string Name { get; set; }
     string Location { get; set; }
}

List<WorkshopEntity> workshopList = (from record in Dac.RetrieveWorkshops(WorkshopCode, Name)  select new WorkshopEntity { Name=record.name, Location=record.Location }).ToList();

答案 2 :(得分:0)

return query.ToArray();

但请记住在[Serializable]课程的顶部添加WorkshopEntity属性。

如果您在WorkshopEntity中有复杂的类型属性,请告知我,因为您应该执行更多操作。