【问题标题】:ASP vNext Core 5.0 DataTableASP vNext Core 5.0 数据表
【发布时间】:2015-01-12 11:01:25
【问题描述】:

是否可以在 ASP vNext Core 5.0 中使用“DataTable”或“DataSet”类?

当我尝试使用这些类时,我收到了错误:

'找不到类型或命名空间名称'DataTable''。

【问题讨论】:

  • 请出示您的 project.json 文件 - 您可能缺少参考资料。试试System.DataSystem.Data.SqlClient

标签: datatable dataset asp.net-core


【解决方案1】:

这个问题已经有几个月了,但我看到它一直在出现,所以我会发布一个答案。

从 beta 3 开始,aspnetcore 仅包含 System.Data 相关成员的子集,可以在 System.Data.SqlClient 和 System.Data.Common 中引用。数据库中缺少的比较明显的项目如下:DataTable、DataSet、IDbConnection、IDbCommand、IDbTransaction 以及 IDbDataParameter 和 IDataReader。

如果您希望维护一些抽象,您可以参考相关的抽象类,如 DbCommand、DbConnection、DbTransaction 和 DbDataReader。需要注意的一点是,DbDataReader 和 SqlDbDataReader 对象不再支持 Close() 方法。相反,您只需调用 dispose。

我还没有听说这些成员是否会在 aspnetcore 中重新引入,但他们似乎也没有进入 beta 4。

【讨论】:

    【解决方案2】:

    aspnetcore 是 dnxcore 的子集,被认为已弃用,应该使用 dnxcore。

    至于 DataTables 和其他相关的 System.Data 类型,根据this issue,很遗憾,他们不会很快包含它。

    【讨论】:

      【解决方案3】:

      类 DataSet/DataTable/DataRow 以及与它们相关的所有内容(DbCommandGenerator、DbDataAdapter 等)在 .NET Core 1.0 版本中不可用(在 .NET Standards 1.3-1.6 规范中也是如此)。这意味着 ADO.NET 被简化为一组极简的低级接口和组件(如 IDbConnection、IDbCommand、IDbTransaction、DbProviderFactory)。目前没有确认 DataRow/DataTable 将在未来的 .NET Core 版本中回归。

      如果您正在寻找介于低级 .NET Core ADO 接口和强类型化 EF Core 模型之间的东西 - 请查看为 DbCommandGenerator 和 DbDataAdapter 提供替代实现的开源 NReco.Data 库。我是这个库的作者,所以你可以向我询问详情。

      【讨论】:

        猜你喜欢
        • 2015-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-17
        • 2015-05-09
        • 2022-08-17
        • 2015-04-03
        相关资源
        最近更新 更多