Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 将数据集转换为IQueryable<;T>;或IEnumerable<;T>;_Linq_Datatable_Ienumerable_Iqueryable - Fatal编程技术网

Linq 将数据集转换为IQueryable<;T>;或IEnumerable<;T>;

Linq 将数据集转换为IQueryable<;T>;或IEnumerable<;T>;,linq,datatable,ienumerable,iqueryable,Linq,Datatable,Ienumerable,Iqueryable,既然还没有Linq到DB2(拜托IBM!),我想在代码中处理iQueryTables或IEnumerables,那么如何将DataTable转换为iQueryTable呢?还是一个数不清的数字 我有一个接口和一个与datatable中的列相匹配的类 IQueryable<IMyData> GetAS400Data(..parameters..) { DataSet d = GetData(); ... //Some code to convert d to I

既然还没有Linq到DB2(拜托IBM!),我想在代码中处理iQueryTables或IEnumerables,那么如何将DataTable转换为iQueryTable呢?还是一个数不清的数字

我有一个接口和一个与datatable中的列相匹配的类

IQueryable<IMyData> GetAS400Data(..parameters..)
{
    DataSet d = GetData();
    ...
    //Some code to convert d to IQueryable<IMyData>
}
IQueryable GetAS400Data(…参数…)
{
数据集d=GetData();
...
//一些将d转换为IQueryable的代码
}
DataTable.Rows不支持.AsQueryable,因为MSFT将其删除,所以我不确定在这里要做什么。

似乎存在一个具有entity framework for DB2的提供程序

table.AsEnumerable()...

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

但是,您需要为您的类型编写自己的翻译(
Select
);而
IQueryable
仍将使用LINQ访问对象;使用
IQueryable
而不是
IEnumerable
的唯一目的(在本场景中)是为了出于其他原因使用表达式,可能是出于以下原因。

您可以使用类似的内容

DataSet ds = GetData();
DataTable dt= ds.Tables[0];
var query =
    from row in dt.AsEnumerable() 
    select new IMyData()
    {
        property1= row[0],
        property2= row[1]
    };

不幸的是,由于去年一次糟糕的经历,EF已经被排除在我之外。这是不幸的,因为EF是微软的未来……那么换工作:)你如何转换成另一种方式?从IQueryable到DataTable?
IQueryable
本质上是数据的视图。原始的
数据表仍然保留。要创建一个
数据表
,请看以下内容:@marcGravel可以详细说明如何进行翻译吗?我尝试了IQueryable resultList=(DataSet.Tables[0]).AsEnumerable().AsQueryable();我遇到一个错误:无法将类型IQueryable转换为类型IQueryable..AsEnumerable()