2010-05-28 84 views
1

我是數據庫編程的新手,所以我希望幫助你走上正確的軌道。我已經讀過,有數據訪問的Microsoft定義和第三方數據提供者。 MSDN擁有關於SQL Server,OLE DB,ODBC,Oracle,以及EntityClient提供程序(實體框架)的數據提供程序的信息。哪個.NET數據提供者?

哪個數據提供者是當今最熱門,應用最廣泛的模型?

哪一個是未來?

此外,我已經看到Linq到SQL教程,但L2S陷入什麼類別?

+3

你試圖連接什麼類型的數據庫? – 2010-05-28 05:17:54

+1

我最感興趣的是MS SQL Server和關係數據庫。 – user246392 2010-05-28 05:22:35

+0

除了SQL Server,還有其他幾個關係數據庫。 – R0MANARMY 2010-05-28 05:28:46

回答

3

Linq to SQL是一個ORM,一個對象關係映射器。實體框架也是一個ORM,儘管看起來實體框架是L2S的一個自然發展,但它們實際上是並行開發的,並且在實現上有很大不同。例如,L2S不能與MSSQL以外的任何其他數據庫一起工作,因爲實體框架將與大多數數據庫一起工作。

實體框架允許您使用自己的數據提供程序,因此提供程序將嚴重依賴於要使用的數據庫以及是否有可用的提供程序。如果你還沒有選擇數據庫,你需要首先權衡利弊(然後可能會使用MSSQL,因爲如果你使用.NET進行開發,它會更容易)。

根據MSSQL的偏好,你的數據庫設計對你是否希望使用ORM有很大的影響。 Linq到SQL L2S在開發社區仍然很好用,但我不確定它的未來。 Linq to Entities(或實體框架)是相對較新的,但從4.0開始,我相信它的業務準備就緒並得到很好的支持。如果你喜歡開源(和努力工作)選項,你也可以考慮NHibernate。建立起來很難,但往往值得爲複雜的領域付出努力。

+0

L2S不能與其他開箱即用的數據庫一起使用,還有第三方提供商用於其他數據庫的LINQ to SQL – Davy8 2010-05-28 05:56:17

0

Linq 2 Sql和Entity客戶端提供程序也在後端使用受管驅動程序。託管驅動程序比ODBC和OLE DB驅動程序更有效率。那裏的大部分數據庫都存在託管提供程序。

0

取決於您打算使用的數據庫。

  • 微軟正式推出實體框架作爲數據訪問的新熱點。理論上,您可以使用帶有Oracle,MySQLPostgre的EF。
  • Last I heard微軟並未打算對Linq to SQL進行主動開發。然而,就像這樣,它在SQL Server之上作爲一個輕量級的ORM層非常好,值得探索(取決於您的項目需求)。
  • 還有一個SqlClient如果您需要較低級別的連接到您的SQL Server。在某些情況下它可能是一個可行的選擇。這絕對不是新的熱點,但它可能會幫助您(通常)知道ADO如何在您開始使用像EF這樣的抽象工作之前工作。

我不能說OLE DB或ODBC。

0

實際上,這取決於你正在解決什麼任務,你在這個或那個數據庫中的經驗。如果你想使用ORM,你可以在這裏找到很多選擇:LINQ 2 SQL,Entity Framework,NHibernate,DataObjects等等。LINQ 2 SQl僅適用於SQL Server,實體框架可以與不同的提供者一起工作,但實際上我不知道Oracle提供的任何官方提供者,因此,對於我來說,我不會相信任何第三方提供者。 NHibernate是真正的跨數據庫解決方案,比前兩個更成熟。但它有它自己的缺點。記住ORM不是唯一的選擇。您可以使用ADO.NET與許多提供者可用。這假定您自己編寫SQL代碼並控制所有連接和事務內容,但它也給您更多自由度,因爲此層比ORM低。