Home > DeveloperSection > Forums > Filling a DataSet or DataTable from a LINQ query result set
Ankit Singh

Total Post:341

Points:2389
Posted on    December-27-2013 6:39 AM

 C# C# 
Ratings:


 1 Reply(s)
 3393  View(s)
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?


Alex Leblois
Alex Leblois

Total Post:67

Points:471
Posted on    December-27-2013 7:04 AM

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

Don't want to miss updates? Please click the below button!

Follow MindStick