query - linq to datatable c# example
Convertir conjunto de datos en IQueryable<T> o IEnumerable<T> (3)
Mire aquí , parece que existe un proveedor con un marco de entidad para DB2.
Dado que todavía no hay Linq para DB2 (¡c''mon IBM!), Y quiero tratar con IQueryables o IEnumerables en mi código, ¿cómo convertiría un DataTable en un IQueryable? O un IEnumerable?
Tengo una interfaz y una clase que coincide con las columnas en la tabla de datos ...
IQueryable<IMyData> GetAS400Data(..parameters..)
{
DataSet d = GetData();
...
//Some code to convert d to IQueryable<IMyData>
}
DataTable.Rows no admite .AsQueryable, ya que MSFT lo tiró, así que no estoy seguro de qué hacer aquí.
table.AsEnumerable()...
table.AsEnumerable().AsQueryable()...
Sin embargo, necesitaría escribir su propia traducción ( Select
) a su tipo; y IQueryable<T>
todavía estaría utilizando LINQ-to-Objects; el único propósito (en este escenario) de usar IQueryable<T>
sobre IEnumerable<T>
sería usar expresiones por algún otro motivo, tal vez para la biblioteca LINQ dinámica .
puedes usar algo como esto
DataSet ds = GetData();
DataTable dt= ds.Tables[0];
var query =
from row in dt.AsEnumerable()
select new IMyData()
{
property1= row[0],
property2= row[1]
};