我正在尝试在一个从查询中返回数据的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;
答案 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
中有复杂的类型属性,请告知我,因为您应该执行更多操作。