【发布时间】:2014-02-17 07:51:24
【问题描述】:
我是 c# 的初学者,我正在寻找在 c# 中连接和使用 sql server 的最佳方法。我发现有三种使用数据库的方法:
- ADO.NET
- 林克
- 实体框架
但我对哪个更有用和更适用感到困惑。 请帮我? 谢谢
【问题讨论】:
标签: c# database linq ado.net entity
我是 c# 的初学者,我正在寻找在 c# 中连接和使用 sql server 的最佳方法。我发现有三种使用数据库的方法:
但我对哪个更有用和更适用感到困惑。 请帮我? 谢谢
【问题讨论】:
标签: c# database linq ado.net entity
我正在寻找在 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 Framework 使用 Linq to Entities,它建立在 ADO.NET 之上(内部 Linq 查询被转换为 ADO.NET 代码)。它易于使用,因为 EF 为您处理连接、生成和执行命令以及将查询结果映射到实体。但是你应该为此付出代价。
【讨论】:
只有一种方法可以连接到数据库。 ADO.NET,更具体:Connection 对象。
现在,LINQ,ENTity Framework - 你猜怎么着,它们不与数据库对话。他们使用 ADO.NET 来做到这一点。
它们都是关于在应用程序中更容易编程 - 与数据库的对话是由相同的底层类完成的。如果返回数据,一切都通过一个连接、一个命令和一个 SqlReader。
也就是说,一定要学习实体框架——ORM 是基线,编写手工制作的 SL 应该留给那些有意义的实例。无法以 ORM 形式表达的非常复杂的查询。并学习正确的 SQL - 数据库可以做的事情比大多数人意识到的要多。
【讨论】:
没有“最好的方法”,因为每种方法都有很多优点和缺点,所以要看情况。
例如,实体框架很重,但连接数据库的方式很方便。它会自动从您的表和视图中生成对象。
LINQ 不那么繁重,但有些人觉得它不太方便。
【讨论】: