2011-03-11 37 views
2

如果您現在正在.NET 2008中編寫小型數據庫應用程序,那麼可以使用普通的ADO.Net或ADO.Net實體框架或兩者都有?Visual Studio 2008中的ADO.Net或實體框架

我使用Visual Studio 2008學習.Net。我已經在MS Access VBA中做了相當多的編程,但是我已經決定是時候通過桌面和90年代了。我的問題部分是關於我應該學什麼,但也非常關心我應該在現實世界中實際應用的東西。

回答

4

技術實體框架是ADO.Net的演變。幫你一個忙,並傾倒數據集,以支持更強大的ORM。此時,沒有人應該再傳遞DataSet。

值得注意的是,對於ORM,實體框架不是您唯一的選擇。有NHibernate,SubSonic,LINQ to SQL等...所有這些都將在2008年工作得很好。我認爲EF 1沒有完全烘焙。

+0

從我問這個問題到五年後,我們發現實體框架查詢太有限了,而且ADO.NET DataReader的性能更好。我現在不同意「在這一點上沒有人應該傳遞數據集」的想法。無論如何仍然會使用EF Code First進行遷移,但我們的GET查詢將成爲大多數原始SQL,並且越來越多地使用DataReader來提高速度。 – HK1 2016-08-17 17:08:57

0

如果您的數據庫足夠小並且沒有太多查詢,請執行ADO.NET,但是如果您正在採取任何規模,請執行實體框架,因爲這將值得開銷。數據生成和原生查詢關鍵字將大大減少錯誤。

+0

你保持你的答案知道VS 2008只使用EFv1,而不是新的,更好的EFv4? – HK1 2011-03-11 03:13:00

+0

@ HK1:是的,VS2008僅適用於.NET 3.5 - > EF v1。 EF v4僅適用於.NET 4 - >您**需要** VS 2010 – 2011-03-11 05:53:12

+0

謝謝,我不認爲你完全理解我的問題。我已經讀過EF v1並沒有真正準備好使用,但VS 2010中的EF v4得到了更好的評價,因爲MS修復了EF v1中存在的很多問題。喬希在他的回答中提到了同樣的問題。 – HK1 2011-03-20 23:03:31

0

如果您學習,請使用EF。什麼是倒退的重點。 它使開發更容易。 ADO/Dataset的做事方式已經死了。 此外,如果你轉移到網絡,那麼使用EF與WCF數據服務是很好的。它是一個很好的技巧。

其次,爲什麼要使用2008.如果你學習,可以獲得最新的工具。快遞版本真的很棒。

3

我不會使用VS 2008自帶的Entity Framework的版本。使用VS2010的實體框架很好。

我可能不會使用ADO.NET,因爲我似乎總是最終編寫自己的自定義ORM。

對於.NET 3.5/VS 2008,我會推薦NHibernate。 Linq To Sql可能是一個選項,如果你想快速入門並且可以在完成後丟棄項目(因爲長壽命的項目可能必須重寫爲使用EF或NHibernate)。

因此,首先嚐試NHibernate,如果學習曲線過於令人恐懼,則退回到LinqToSql或EF。一旦你學習了一個ORM,學習第二個ORM就容易多了。

此外,您還可以閱讀了很多關於這裏選擇一個ORM的.NET:

NHibernate, Entity Framework, active records or linq2sql

+1

LINQ TO SQL +1。不知道他的項目的規模和範圍,你不應該說他必須扔掉這個項目。有數千個L2S應用程序在那裏運行就好了。只要SQL查詢的效率足夠高,我就沒有理由重新做這些應用程序,因爲MS說L2S已經死了。 – Graham 2011-10-04 14:03:06

+1

@格拉漢姆:我沒有說他必須拋棄這個項目。有很多應用程序使用RDO/ADO/OLEDB/ODBC以及微軟早已放棄的其他數據庫技術。爲什麼建議有人使用廢棄的技術來建立新的代碼庫? – 2011-10-04 17:55:48