如何将LINQ查询作为ASMX Web服务公开?通常,从业务层,我可以返回一个输入的DataSet
或DataTable
,可以序列化以便通过ASMX传输。从LINQ查询结果集中填充DataSet或DataTable
我该如何为LINQ查询做同样的事情?有没有办法通过LINQ查询填充键入的DataSet
或DataTable
?
public static MyDataTable CallMySproc()
{
string conn = "...";
MyDatabaseDataContext db = new MyDatabaseDataContext(conn);
MyDataTable dt = new MyDataTable();
// execute a sproc via LINQ
var query = from dr
in db.MySproc().AsEnumerable
select dr;
// copy LINQ query resultset into a DataTable -this does not work !
dt = query.CopyToDataTable();
return dt;
}
我怎样才能得到结果集LINQ查询到DataSet
或DataTable
?或者,LINQ查询是否可序列化,以便我可以将它公开为ASMX Web服务?
为了大家想知道为什么CopyToDataTable()在他们的机器上不起作用:这个函数不是.NET 3.5 SP1的一部分,也不是.NET 4.0的;它已被限制为IEnumerable,并且不适用于IEnumerable - http://bit.ly/dL0G5 –
motto
2010-02-02 22:00:11