LINQ クエリを ASMX Web サービスとして公開するにはどうすればよいですか?
通常、ビジネス層からは、ASMX 経由で転送するためにシリアル化できる型指定されたDataSet
またはを返すことができます。DataTable
LINQ クエリで同じことを行うにはどうすればよいですか? LINQ クエリを使用して型付きまたはを
設定する方法はありますか?DataSet
DataTable
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>();
なぜそれがうまくいかないのですか?