ASP.NET Core项目中缺少SqlDataAdapter

时间:2016-07-22 22:55:40

标签: c# asp.net asp.net-core asp.net-core-1.0

我正在尝试使用.NET Core 1.0项目中的ADO.NET连接到没有Entity Framework的数据库。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ASP_NETCore3.Models;
using System.Data;
using System.Data.SqlClient;
//using System.Configuration;

namespace ASP_NETCore3.Repository
{
    public class LineasRepository
    {
        private SqlConnection con;

        private void connection()
        {
            //TODO: Implementar variables de confuracion obtiendolas desde appsettings.json
            string constr = "Data Source=mylocaldb\\sql08;Initial Catalog=empresas;User id=user;Password=secret;Integrated Security=SSPI;";
            con = new SqlConnection(constr);
        }

        public List<LineasModel> GetAllLineas()
        {
            connection();
            List<LineasModel> LineasList = new List<LineasModel>();
            SqlCommand com = new SqlCommand("select * from CATLIN", con);
            com.CommandType = CommandType.Text;
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataTable dt = new DataTable();
            con.Open();
            da.Fill(dt);
            con.Close();

            LineasList = (from DataRow dr in dt.Rows

                       select new LineasModel()
                       {
                           cod_lin = Convert.ToInt32(dr["COD_LIN"]),
                           nom_lin = Convert.ToString(dr["NOM_LIM"]),
                           margen = Convert.ToString(dr["MARGEN"]),
                       }).ToList();


            return EmpList;
        }
    }
}

如您所见,我可以使用System.Data.SqlClient,但由于某种原因编译器说SqlDataAdapter丢失了。

我该怎么办?可以修复从NuGet安装另一个包吗?

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

看来.net核心不提供SqlDataAdapter甚至DataTable

的实现

这是this page

的引用
  

关于

     

找不到DataTable和DataSet以及SqlDataAdapter ......?!?

     

至于.NET Core 1.0发布数据访问技术&gt;仅限于低级别的ADO.NET接口(IDbConnection,IDbCommand等)或丰富的EF Core。 &gt;尽管如此,您可以使用可用作DataRow / DataTable / DataAdapter替换的第三方库,例如NReco.Data

答案 2 :(得分:1)

对于.net core 3.1,Microsoft提供了一个新库,名为Microsoft.Data.SqlClient,其几乎所有代码都与原始System.Data.SqlClient相同。您只需要拥有新的NuGet程序包,并且所有代码都应该以最小的更改(如果有的话)运行。

主流的ORM(Dapper和EntityFramework)也依赖于此软件包进行基础工作。

截至2020年7月(https://www.nuget.org/packages/Microsoft.Data.SqlClient/)的更新版本为2.0。

但是,如果要使用原始软件包,则需要将项目版本设置为Platform Extensions 3.1

答案 3 :(得分:0)

我使用编译的mysql dataadapter和commandbuilder重新编译了.net core 2.0的MySQL.Data。到目前为止我测试过的是。

https://github.com/amjtech/MySQL.Data

享受。

答案 4 :(得分:0)

使用NuGet并安装Microsoft.EntityFrameworkCore.SqlServer,将System.Data.SqlClient埋在此处。