LINQ クエリの結果セットから DataSet または DataTable にデータを入力する 質問する

LINQ クエリの結果セットから DataSet または DataTable にデータを入力する 質問する

LINQ クエリを ASMX Web サービスとして公開するにはどうすればよいですか?
通常、ビジネス層からは、ASMX 経由で転送するためにシリアル化できる型指定されたDataSetまたはを返すことができます。DataTable

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 クエリの結果セットを または に配置するにはどうすればよいですかDataSet?DataTableあるいは
、LINQ クエリをシリアル化して、ASMX Web サービスとして公開することはできますか?

ベストアンサー1

質問に記載されているように、方法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>();

なぜそれがうまくいかないのですか?

おすすめ記事