12

由于还没有 Linq to DB2(来吧 IBM!),并且我想在我的代码中处理 IQueryables 或 IEnumerables,我将如何将 DataTable 转换为 IQueryable?还是一个 IEnumerable?

我有一个接口和一个与数据表中的列匹配的类...

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

DataTable.Rows 不支持 .AsQueryable,因为 MSFT 取消了它,所以我不知道该怎么做。

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 回答