MSDN 中的例子:DataTable orders = dataSet.Tables["SalesOrderHeader"];EnumerableRowCollection<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    orderby order.Field<decimal>("TotalDue")
    select order;
DataView view = query.AsDataView();
;我的代码:
EnumerableRowCollection<DataRow> query = 
                        from s in linq.LinqDB.Contestant.AsEnumerable()
                        where s.State > -1
                        orderby s.DateCreated descending
                        select s;
DataView view = query.AsDataView();
唯一的区别就是我的 linq.LinqDB.Contestant 是映射到数据库表的实体类 这样就始终不能执行成功,错误是
"无法将类型为“WhereEnumerableIterator`1[AAA.App_Linq.Contestant]”的对象强制转换为类型“System.Data.EnumerableRowCollection`1[System.Data.DataRow]”。 
"我的目的就是想将从 linq 查询出的结果存放到dataview中,用来作缓存的.如何做 ? 

解决方案 »

  1.   

    对了 我的linq对象是通过创建 Linq To Database 类, 就是dbml 出来的
      

  2.   

    目前我的做法是先吧 查询结果 var query = (...).ToArray();然后再吧结果转成了 dataset ,然后再转成了 dataview 有没有直接点的办法?
      

  3.   

    var query = products.AsEnumerable().
        Select(product => new
       {
            Name = product.Field<string>("Name"),
            Number = product.Field<string>("Number")
       });
    DataTable orders = ds.Tables["A"];
    EnumerableRowCollection<DataRow> query = from order in orders.AsEnumerable()
    select order;
    DataView view = query.AsDataView();
      

  4.   

    DataTable orders = ds.Tables["A"];  //这里的 ds 是哪里来的?
    EnumerableRowCollection <DataRow> query = from order in orders.AsEnumerable() //这里报query 重复定义
    楼上的可以解释一下吗?