灌装从LINQ查询结果集的数据集或数据表

灌装从LINQ查询结果集的数据集或数据表

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

08-30 08:04