灌装从LINQ查询结果集的数据集或数据表 [英] Filling a DataSet or DataTable from a LINQ query result set

查看:152
本文介绍了灌装从LINQ查询结果集的数据集或数据表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你怎么暴露的 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查询结果集的数据集或数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆