c# - 从 LINQ 查询结果集中填充 DataSet 或 DataTable

标签 c# linq web-services .net-3.5

如何将 LINQ 查询公开为 ASMX 网络服务?
通常,我可以从业务层返回类型化的 DataSetDataTable,它们可以序列化以通过 ASMX 进行传输。

如何对 LINQ 查询执行相同的操作?
有没有办法通过 LINQ 查询填充类型化的 DataSetDataTable

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 查询的结果集放入 DataSetDataTable 中?
或者,LINQ 查询是否可以序列化,以便我可以将其公开为 ASMX Web 服务?

最佳答案

正如问题中提到的,IEnumerable 有一个CopyToDataTable 方法:

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>();

为什么这对你不起作用?

关于c# - 从 LINQ 查询结果集中填充 DataSet 或 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16/

相关文章:

c# - 将 GroupBy DateTime 与 Entity Framework 一起使用会引发异常

c# - Windows 工作流 - Web 服务 - App_Data 目录 - 数据库

jquery - 500 内部服务器错误 ASP.NET

c# - 应用于类的不变性

c# - string.Concat,可变的还是不可变的?

c# - 使用默认行为将模型绑定(bind)到接口(interface)

c# - 强制 Entity Framework 使用 datetime 而不是 datetime2

C#/林克 : Where X is Y?

java - 如何公开本地部署的Web服务

c# - 使用 GMap.net 在 map 上绘制折线