如何將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