asp.net - .NET Core 中的 ADO.NET 可能吗?

标签 asp.net asp.net-mvc ado.net

大多数教程都是 Entity Framework ,在 .Net Core 项目中没有提及 Ado.Net。我有一个“旧版”数据库,因此不能选择 EF/“代码优先”方法。

对于 ADO.NET 连接,System.Data.SqlClient 是否可用于 ASP.NET Core 项目?

当我使用 .NET Framework 项目模板时它可用,但它在 .NET Core 项目中仍然可用吗?

最佳答案

现有的 SqlConnection 和其他相关连接仍然存在于 System.Data.SqlClient 命名空间中,并且应该使用完整框架或 .NET Core 按预期工作。

您只需添加适当的引用并使用语句来包含它,例如通过 System.Data.SqlClient 命名空间,如下面的 project.json 中所示> 文件:

enter image description here

然后通过您习惯的语法调用它:

using(var connection = new SqlConnection("{your-connection-string}"))
{
      // Do work here
}

因此,只要您有一个有效的连接字符串来连接到现有的旧数据库,就应该没问题。

关于 ORM 使用

I also found that some people are using Dapper, a Micro-ORM replacement for Entity Framework, apparenty more flexible. It is there any advantages of using it instead ADO.NET?

这些 ORM(对象关系映射器)是方便且通常功能强大的工具,可以更轻松地将现有数据库数据映射到特定的类和对象,这可以使它们更易于使用(而不是迭代数据读取器、解析您的每一行并手动构建每个对象)。

就性能而言,它最终取决于您要对查询执行的操作。 ADO.NET 通常是最快的,因为它是与数据库的简单连接,但在某些情况下,Dapper 实际上可以击败它。 Entity Framework 虽然非常有用,但在性能上通常落后,仅仅是因为它是一个如此庞大的 ORM。

再说一次 - 这最终取决于你在做什么,但所有都是可行的选择。

关于asp.net - .NET Core 中的 ADO.NET 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510740/

相关文章:

asp.net - 下拉列表的selectedindexchanged后如何避免页面刷新?

c# - ASP.NET - 访问页面上的所有 ImageButton 并将两个图像放在 ImageButton 上

c# - MVC2 ASP.Net URL 是否自动编码?

javascript - @Url.Action 在导航栏中单击时不会路由

c# - 使用列名从数据 View 中查找值

asp.net - iOS:如何将凭据添加到 NSURL 的代码中?

c# - 路由请求时 HttpContext.Current.Session 为 null

ASP.NET MVC、Webforms 和 HTTP 处理程序 (.ashx) - 哪个是最轻量级的?

c# - 如何查找正在使用我的连接池中的连接的内容

c# - 异常详细信息 : System. Web.HttpException: 超出最大请求长度