ASP.NET核心项目中缺少SqlDataAdapter

本文关键字:SqlDataAdapter 项目 NET 核心 ASP | 更新日期: 2023-09-27 17:58:13

我正在.NET Core 1.0项目中使用ADO.NET,尝试在没有实体框架的情况下连接到数据库。

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安装另一个软件包的问题?

ASP.NET核心项目中缺少SqlDataAdapter

.NET Core 2.0现在实现了SqlDataAdapter和DataTable。

https://learn.microsoft.com/en-ca/dotnet/api/system.data.sqlclient.sqldataadapter?view=netcore-2.0

对于.net core 3.1,Microsoft提供了一个新的库Microsoft.Data.SqlClient,它几乎所有的代码都与原始的System.Data.SqlClient相同。你只需要有一个新的NuGet包,所有的代码都应该只做最小的更改(如果有的话)。

主流的ORM,Dapper和EntityFramework,也依赖于这个包进行底层工作。

截至2022年4月,更新版本为4.1(https://www.nuget.org/packages/Microsoft.Data.SqlClient/)

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

使用NuGet并安装Microsoft.EntityFrameworkCore.SQL Server,System.Data.SqlClient就埋在那里。

似乎.net core不提供SqlDataAdapter甚至DataTable 的实现

这是本页的报价

关于

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

对于.NET Core 1.0版本的数据访问技术>是否仅限于低级别?ADO.NET接口(IDbConnection、IDbCommand等)或丰富的EF Core>尽管如此,您是否可以使用第三方库作为替换?对于DataRow/DataTable/DataAdapter,例如NReco.Data.

我用中编译的MySQL数据适配器和commandbuilder重新编译了用于.net核心2.0的MySQL.Data。到目前为止,我所测试的一切都有效。

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

享受吧。