【发布时间】:2018-02-04 15:47:43
【问题描述】:
我需要从一个 DataTable 中生成一个 'IEnumerable,该 DataTable 作为来自另一个系统的输入。以下代码在 ASP.NET 4.6.1 中工作。
public static IEnumerable<UserAssignmentDto> StaffAssignmentsUsingStoredProcedure(System.Data.DataTable dataTable)
{
var data = dataTable.AsEnumerable().Select(row =>
new UserAssignmentDto
{
Id = ((string)row["AssignmentNumber"]),
Position = (string) row["EsrPositionTitle"],
});
return data;
}
但是,在 ASP.NET Core 2.0 中,“DataTable”不再包含“AsEnumerable”的定义。
生成我需要的“IEnumerable”的最有效方法是什么?
【问题讨论】:
-
使用 for 循环并遍历 DataTable 行并水合 IEnumerable
-
你能告诉我你所说的水合物是什么意思吗?
-
你不能直接说
dataTable.Rows.Select(...);吗?如果选择“项目”是一个对象,你可以添加 OfTypedataTable.Rows.OfType<DataRow>().Select(...); -
您也可以使用演员表:
dataTable.Rows.Cast<DataRow>().Select(...)。这比 OfType 好还是坏?
标签: c# asp.net linq asp.net-core