class Program
{
static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json", false)
.Build();
var connectionString = configuration.GetSection("connectionString").Value;
if(string.IsNullOrEmpty(connectionString))
throw new ArgumentException("No connection string in config.json");
using (var conn = new SqlConnection(connectionString))
{
var sql = "SELECT * FROM ExampleTable";
using (var cmd = new SqlCommand(sql, conn))
{
using (var adapter = new SqlDataAdapter(cmd))
{
var resultTable = new DataTable();
adapter.Fill(resultTable);
}
}
}
}
}
7条答案
按热度按时间ct3nt3jp1#
现有的
SqlConnection
和其他相关连接仍然存在于System.Data.SqlClient
命名空间中,使用完整的框架或.NET核心应该可以按预期工作。您只需要添加适当的引用和using语句来包含它,例如通过
System.Data.SqlClient
命名空间,如下面project.json
文件中所示:然后通过你习惯的语法调用它:
因此,只要您有一个有效的连接字符串来连接到现有的遗留数据库,您就应该可以了。
关于ORM的使用
我也发现有些人用Dapper,一个Micro-ORM替代实体框架,看起来更灵活。用它代替ADO .NET有什么好处吗?
这些ORM(对象关系Map器)是方便且通常功能强大的工具,可以更轻松地将现有数据库数据Map到特定的类和对象,从而使它们更易于使用(与通过数据读取器迭代、解析每行并手动构建每个对象相反)。
至于性能,它最终取决于你要用你的查询做什么。ADO .NET通常是最快的,因为它是到数据库的最基本的连接,然而在某些情况下,Dapper实际上可以击败它。实体框架,虽然非常有用,但通常在性能上落后,仅仅是因为它是一个如此大的ORM。
再次-它最终取决于你在做什么,但所有都是可行的选择。
kiayqfof2#
NET核心2.0有数据集、数据表和SQlDataAdapter。请参阅我在https://blogs.msdn.microsoft.com/devfish/2017/05/15/exploring-datatable-and-sqldbadapter-in-asp-net-core-2-0/上的答案。
下面的代码工作正常
hivapdat3#
正如Joe Healy在他的answer in DotNet Core 2.0中提到的,可以使用所有System.data特性。
添加金块:
config.json示例:
下面是一个完整的控制台应用程序示例。
nnvyjq4y4#
值得注意的是,.NET Core在2.0版本之前没有DataSet、DataTable和相关对象。但在2.0之前,它具有所有核心功能,如Connection、Command、Parameter、DataReader和其他相关对象。
您可以使用以下调用来简化通过SQL Server数据库提供程序与SQL Server连接。
有关更多详细信息和示例,请参阅以下文章:http://www.ijz.today/2016/09/net-core-10-connecting-sql-server.html
lhcgjxsq5#
在ADO .NETCore中,我不使用System.Data.SqlClient,但我使用Microsoft.Data.SqlClient。到目前为止,我可以使用我以前所有的编码!
dkqlctbz6#
你仍然可以使用EF
有一个称为scaffold-dbcontext的工具
它将基于遗留数据库结构为您创建“实体”分部类。
您需要稍微给予一下“实体“的管理以及它与其他代码分开创建的dbcontext类(该工具可以覆盖现有的类)。
我已经在.net core中为SQL SERVER和ORACLE项目使用了此功能
您将需要其他软件包:
查看此链接
dgsult0t7#
基于本文
Introducing the new Microsoft.Data.SqlClient
您可以像使用
System.Data.SqlClient
一样使用Microsoft.Data.SqlClient