Linq 将数据集转换为IQueryable<;T>;或IEnumerable<;T>;
既然还没有Linq到DB2(拜托IBM!),我想在代码中处理iQueryTables或IEnumerables,那么如何将DataTable转换为iQueryTable呢?还是一个数不清的数字 我有一个接口和一个与datatable中的列相匹配的类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
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()