gpt4 book ai didi

c# - 如何将 IQueryable 转换为 DataTable

转载 作者:可可西里 更新时间:2023-11-01 09:13:07 27 4
gpt4 key购买 nike

我使用 LinQ 编写了查询,并使用了 CopyToDataTable 方法。在那一行显示从我的数据库类型到 System.Data.DataRow 的隐式转换类型错误。

var query = from i in dbContext.Personaldetails
where i.ID == 1
select i;

return query.CopyToDataTable();

有什么建议吗?

最佳答案

CopyToDataTable 需要收集 DataRow 对象。请参阅如何:Implement CopyToDataTable Where the Generic Type T Is Not a DataRow来解决这个问题。

更新:如果您的实体具有可空字段,您可以修改 ObjectShredder.ExtendTable 方法。查找新列添加到表的位置,并删除第二个参数,该参数提供列中的数据类型(DataColumn 类不支持可为空的数据类型):

foreach (PropertyInfo p in type.GetProperties())
{
if (!_ordinalMap.ContainsKey(p.Name))
{
DataColumn dc = table.Columns.Contains(p.Name) ? table.Columns[p.Name]
// do not provide column type
: table.Columns.Add(p.Name);

_ordinalMap.Add(p.Name, dc.Ordinal);
}
}

关于c# - 如何将 IQueryable 转换为 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618605/

27 4 0