我正在尝试使用.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安装另一个包吗?
答案 0 :(得分:4)
.NET Core 2.0现在实现了SqlDataAdapter和DataTable。
https://docs.microsoft.com/en-ca/dotnet/api/system.data.sqlclient.sqldataadapter?view=netcore-2.0
答案 1 :(得分:1)
看来.net核心不提供SqlDataAdapter
甚至DataTable
关于
找不到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埋在此处。