问题描述
你怎么暴露的 LINQ 查询作为 ASMX Web服务?通常,从业务层,我可以返回一个类型化的数据集
或数据表
可序列化进行传输, ASMX
How do you expose a LINQ query as an ASMX web service? Usually, from the business tier, I can return a typed DataSet
or DataTable
which can be serialized for transport over ASMX.
我如何可以做同样的 LINQ 查询?有没有办法通过的 LINQ 查询填充一个类型数据集
或数据表
?:
How can I do the same for a LINQ query? Is there a way to populate a typed DataSet
or DataTable
via a LINQ query?:
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 查询到数据集
或数据表
?另外,是 LINQ 查询可序列化,这样我可以将其作为一个 ASMX Web服务?
How can I get the resultset of a LINQ query into a DataSet
or DataTable
? Alternatively, is the LINQ query serializeable so that I can expose it as an ASMX web service?
推荐答案
正如前面提到的问题,的IEnumerable
有一个 CopyToDataTable
方法:
As mentioned in the question, IEnumerable
has a CopyToDataTable
method:
IEnumerable<DataRow> query =
from order in orders.AsEnumerable()
where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
select order;
// Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();
为什么不为你的工作?
Why won't that work for you?
这篇关于灌装从LINQ查询结果集的数据集或数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!