在c#中连接数据库的最佳方式是什么?

问题描述:

我是c#的初学者,我正在寻找连接并使用c#中的sql server的最佳方式。我发现有三种方式来操作数据库:在c#中连接数据库的最佳方式是什么?

  1. ADO.NET
  2. 的LINQ
  3. 实体框架

,但我成为困惑,哪一个更有效和应用。 请帮我吗? 谢谢

只有一种方法可以连接到数据库。 ADO.NET,更多指定:Connection对象。

现在,LINQ,ENtity Framework - 猜猜看,它们不会与数据库交谈。他们使用ADO.NET来做到这一点。

它们都是关于在应用程序中编程更简单 - 与数据库交谈是由相同的基础类完成的。如果返回数据,所有事情都会经过Connection,Command和SqlReader。

这就是说,肯定会学到实体框架 - 一个ORM是基线,写作手工SL应留给那些有意义的实例。非常复杂的查询不能用ORM格式表示。学习正确的SQL数据库可能比大多数人意识到的要多得多。

没有“最好的方式”,因为它们每一个都有很多优点和缺点,所以这取决于它。

例如,实体框架沉重,但方便的方式来连接数据库。它会自动从您的表格和视图中生成对象。

LINQ不那么重,但有些人觉得它不太方便。

我正在寻找最好的方式来连接并在C#中使用SQL Server

“最好的方法”,可以根据您的项目需求区别对待。对所有情况来说都没有最好的办法。有时候你需要轻松的开发,有时候你需要最好的表现,有时候你需要妥协(然后我选择Dapper)。此外,它还取决于应用程序的复杂性 - 无论您是拥有丰富的域模型,还是仅在UI上显示表数据。

1.ADO.NET

最快的途径,但需要大量的手工编码。您应手动设置数据库连接,打开并关闭它们,创建命令,为命令提供参数并执行命令。查询结果的映射也应该手动完成。

2.Linq

这不是方式连接到数据库。 Linq是语言集成查询,它有许多实现 - Linq to Xml,Linq to DataSet,Linq to Object,Linq to SQL,Linq to Entities等。

3.Entity框架

实体框架使用LINQ到实体,它是建立在ADO.NET(内部LINQ查询都将被转换为ADO.NET代码)。它很容易使用,因为EF处理连接,生成并执行命令,并将查询结果映射到实体。但你应该为此付出业绩。