12

DB2 への Linq はまだないので (IBM さん!)、コードで IQueryables または IEnumerables を処理したいのですが、DataTable を IQueryable に変換するにはどうすればよいでしょうか? またはIEnumerable?

データテーブルの列に一致するインターフェイスとクラスがあります...

IQueryable<IMyData> GetAS400Data(..parameters..)
{
    DataSet d = GetData();
    ...
    //Some code to convert d to IQueryable<IMyData>
}

MSFT がヤンクしたため、DataTable.Rows は .AsQueryable をサポートしていないため、ここで何をすべきかわかりません。

4

3 に答える 3

19
table.AsEnumerable()...

table.AsEnumerable().AsQueryable()...

Selectただし、型に独自の翻訳 ( ) を記述する必要があります。そして、IQueryable<T>まだLINQ-to-Objectsを使用しています。IQueryable<T>overを使用する (このシナリオでの) 唯一の目的は、IEnumerable<T>他の理由 (おそらく動的 LINQ ライブラリー) で式を使用することです。

于 2009-02-02T22:01:54.577 に答える
1

こちらをご覧ください。DB2 用のエンティティ フレームワークを備えたプロバイダーが存在するようです。

于 2009-02-02T21:57:10.827 に答える
1

このようなものを使用できます。

DataSet ds = GetData();
DataTable dt= ds.Tables[0];
var query =
    from row in dt.AsEnumerable() 
    select new IMyData()
    {
        property1= row[0],
        property2= row[1]
    };
于 2012-08-30T11:20:16.750 に答える