Filling a DataSet or DataTable from a LINQ query result set

Total Post:341

Points:2389

C# 
C#
 6375  View(s)
Ratings:
Rate this:

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.

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;
}
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?
  1. Re: Filling a DataSet or DataTable from a LINQ query result set

    Hi Ankit,

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

      Modified On Apr-04-2018 01:08:02 AM

Answer

Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.