哪个.NET数据提供商?

时间:2010-05-28 05:14:33

标签: .net database linq entity-framework odbc

我是数据库编程的新手,所以我希望帮助我们走上正轨。我已经读过,有Microsoft定义的和第三方数据提供程序用于数据访问。 MSDN提供有关 SQL Server,OLE DB,ODBC,Oracle,以及 EntityClient提供程序(实体框架)的数据提供程序的信息。

哪个数据提供商是当今最热门,使用最广泛的模式?

未来是哪一个?

另外,我看过Linq to SQL教程,但 L2S 属于哪个类别?

4 个答案:

答案 0 :(得分:3)

Linq to SQL是一个ORM,一个对象关系映射器。实体框架也是一个ORM,虽然看起来实体框架似乎是L2S的自然发展,但它们实际上是并行开发的,并且在封面下是完全不同的。例如,L2S不能与MSSQL以外的任何其他数据库一起使用,因为实体框架可以与大多数数据库一起使用。

实体框架允许您使用自己的数据提供程序,因此提供程序将严重依赖您要使用的数据库以及是否有可用的提供程序。如果您尚未选择数据库,则需要首先权衡每个数据库的优缺点(然后可能使用MSSQL,因为如果您使用.NET开发它会更容易)。

根据您对MSSQL的偏好,您的数据库设计将对您是否希望使用ORM产生很大影响。 Linq to SQL L2S仍然在开发社区中得到很好的使用,但我不确定它的未来。 Linq to Entities(或实体框架)相对较新,但从4.0开始,我相信它已经更加商业化并得到了很好的支持。如果你喜欢开源(和努力工作)选项,你也可以考虑NHibernate。设置起来比较困难,但往往值得为复杂的领域付出努力。

答案 1 :(得分:0)

Linq 2 Sql和Entity客户端提供程序还在后端使用托管驱动程序。据推测,托管驱动程序比ODBC和OLE DB驱动程序更有效。存在大多数数据库的托管提供商。

答案 2 :(得分:0)

取决于您计划使用的数据库。

  • 正式微软正在推动实体框架成为数据访问的新热点。从理论上讲,您可以将EF与OracleMySQLPostgre一起使用。
  • Last I heard Microsoft不计划在Linq to SQL上进行活动开发。但是,就像在SQL Server顶部的轻量级ORM层一样,它非常好,值得探索(取决于您的项目需求)。
  • 如果您需要与SQL Server建立较低级别的连接,还有SqlClient。在某些情况下,它可能是一个可行的选择。它绝对不是新的热点,但它可能会帮助你(通常)在开始使用像EF这样的抽象之前知道ADO是如何工作的。

我无法与OLE DB或ODBC通信。

答案 3 :(得分:0)

实际上,这取决于您要解决的任务,您在此数据库或该数据库中的经验。如果你想使用ORM,你可以在这里有很多选择:LINQ 2 SQL,实体框架,NHibernate,DataObjects等。 LINQ 2 SQl仅适用于SQL Server,实体框架可以与不同的提供商合作,但实际上我不知道Oracle的任何官方提供商,所以,对我来说,我不会相信任何第三方。 NHibernate是真正的跨数据库解决方案,比前两个更成熟。但它有其自身的缺点。记住ORM不是唯一的选择。您可以使用ADO.NET与许多提供商可用。这假设您自己编写SQL代码并控制所有连接和事务内容,但它也为您提供了更多自由,因为该层低于ORM。