C# 使用copyToDataTable将结果Linq到dataTable

C# 使用copyToDataTable将结果Linq到dataTable,c#,linq,datatable,dataset,C#,Linq,Datatable,Dataset,我希望将Linq结果保存在数据集/数据表中。目前的问题是查询变量没有property copyToDataTable。我得到这个错误 类型“x.v_检查表”不能用作中的类型参数“T” 泛型类型或方法 'System.Data.DataTableExtensions.CopyToDataTable 这是我的密码 protected void btnExcelCheckListDownload_Click(object sender, EventArgs e) { DataSet dsTes

我希望将Linq结果保存在数据集/数据表中。目前的问题是查询变量没有property copyToDataTable。我得到这个错误

类型“x.v_检查表”不能用作中的类型参数“T” 泛型类型或方法 'System.Data.DataTableExtensions.CopyToDataTable

这是我的密码

protected void btnExcelCheckListDownload_Click(object sender, EventArgs e)
{
    DataSet dsTest = new DataSet();
    var db = new BillingEntities();
    var query = (from u in db.v_Checklist select u).AsQueryable();
    DataTable dt =  query.CopyToDataTable();
    dsTest.Tables.Add(dt);
    ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", dsTest);
}
如何解决此问题?

来自

该方法获取查询结果并将数据复制到DataTable中,DataTable随后可用于数据绑定。 但是,CopyToDataTable方法仅对IEnumerable进行操作 source其中泛型参数T的类型为DataRow。虽然这 是有用的,它不允许从 标量类型,来自投影匿名类型的查询,或来自 执行表联接的查询

这就是为什么不编写一些扩展就不能直接使用CopyToDataTable

链接主题描述了如何实现两个自定义的
CopyToDataTable
扩展方法,它们接受类型不同于
DataRow
的泛型参数
T