【发布时间】:2012-08-30 15:45:00
【问题描述】:
我刚开始从事一个需要Linq to Sql 的项目,并且已经能够进行查询和检索数据。但现在我需要用我正在检索的数据填写DataTable。
我的第一个代码如下:
MyDatabase db = new MyDatabase();
var query = from cust in db.Customers
where cust.CustomerName != "Dante"
orderby cust.CustomerName
select new { Name = cust.CustomerName };
所以,由于我需要将查询内容复制到 Datatable,我尝试了 this:
IEnumerable<DataRow> query =
from order in orders.AsEnumerable()
where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
select order;
// Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();
然后,我的代码如下所示:
IEnumerable<DataRow> myQuery = from cust in db.Customers.AsEnumerable()
where cust.Name != "Dante"
orderby cust.Name
select new { Name = cust.Name };
DataTable myDataTable = myQuery.CopyToDataTable<DataRow>();
但是使用此代码编译器会引发错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<System.Data.DataRow>
在select 字处引发错误。
那么,我做错了什么?我可以做些什么来避免这个转换问题?
希望有人可以帮助我,在此先感谢。
【问题讨论】:
标签: c# linq ienumerable