是否可以使用' DataTable'或者' DataSet' ASP vNext Core 5.0中的类?
当我尝试使用这些类时,我收到错误:
'类型或命名空间名称' DataTable'无法找到'。
答案 0 :(得分:3)
这个问题已经有几个月了,但我发现它一直在上升,所以我会发布一个答案。
从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,但他们似乎也不会处于测试阶段。
答案 1 :(得分:0)
aspnetcore是dnxcore的子集,被认为已弃用,应该使用dnxcore。
对于DataTables和其他相关的System.Data类型,根据PHP would type-cast things to a boolean,不幸的是它们不会很快包含它。
答案 2 :(得分:0)
类DataSet / DataTable / DataRow以及与它们相关的所有内容(DbCommandGenerator,DbDataAdapter等)在.NET Core 1.0发行版(以及.NET标准1.3-1.6规范中)中不可用。这意味着ADO.NET被简化为一组简约的低级接口和组件(如IDbConnection,IDbCommand,IDbTransaction,DbProviderFactory)。目前还没有确认DataRow / DataTable将在未来的.NET Core版本中恢复。
如果您正在寻找低级.NET Core ADO接口和强类型EF Core模型之间的东西 - 请查看为DbCommandGenerator和DbDataAdapter提供替代实现的开源NReco.Data库。我是这个图书馆的作者,所以你可以向我询问详情。