2010-06-15 79 views
3

在開始編寫新的應用程序或數據訪問庫之前,我多次問我自己,應該使用LINQ to SQL還是傳統的ADO.net,我已經使用了這兩個工具和開發時間來構建LINQ to SQL應用程序與ADO.net相比是1/3。LINQ to SQL或傳統的ADO.NET?

唯一覺得我喜歡使用LINQ to SQL的是,我不需要設計領域對象LINQ爲我做了這些,並節省了我的時間在枯燥的事情上:P但LINQ to SQL適合大型在使用ADO.net時,我們可以避免使用一些開銷嗎?

+0

http://stackoverflow.com/questions/5994968/ado-net-or-linq-to-sql?rq=1 HTTP:/ /stackoverflow.com/問題/ 671179 /林格 - nhibernate-ef-et-al-who-wins?rq = 1 – nawfal 2012-11-11 20:09:35

回答

4

我喜歡LINQ to SQL;使用數據模型很容易。如果你有.NET 4,考慮使用ADO.NET Entity Framework作爲它的未來,它支持多個數據庫。

如果您對數據庫使用LINQ查詢,那麼LINQ to SQL會有一些小的開銷,但我認爲它在大多數方面可以忽略不計。我們有良好的表現。此外,它還支持存儲過程,因此您始終可以從性能角度回退。

1

如果編寫LINQ-to-SQL版本需要1/3的時間,那麼爲原始時間的2/3釋放其他內容,如性能調優。

+0

不太確定號碼(1/3)來自哪裏......有時LINQ需要同樣長的時間! – 2010-06-15 12:01:50

0

請參閱this。如果您節省了時間,並讓您的工作更輕鬆,那麼值得嗎?除非您知道可以通過手動編碼您的數據訪問來解決的具體問題,否則我不打擾。

1

我們是一家價值25億美元的太陽能公司,我們使用L2S作爲我們所有制造運營應用的基礎。我們沒有遺憾。對我們來說,一個巨大的優勢是我們所有的查詢都使用LINQ。這意味着我們所有的查詢都是強類型的。所以,在模式更改後,編譯器會告訴我們哪些查詢需要修復。當然,如果您將所有查詢傳遞給存儲過程,則不具備此優勢。

+1

hmmm,編譯器告訴你哪些查詢需要修復...現在這是一個很大的幫助,可以爲您節省很多時間,爲Linq +1 – Dal 2010-06-15 12:10:00

4

就我個人而言,我不會回到ADO.NET的DAL的東西。但是,請記住,使用Linq2Sql,您與MS SQL Server綁定,我認爲這是不可接受的。

也許還可以考慮其他DAL/ORM,例如NHibernate,SubSonic,實體框架(MS),LightSpeed,Castle ActiveRecord(基於NHibernate)。其中一些(例如NHibernate和Entity Framework)也有可選的Linq查詢接口。

1

LINQ to SQL在一個與Microsoft緊密聯繫的開發環境中可能會很有用,並且在未來幾年裏沒有可預見的與微軟的偏差。但是,爲了擴展到其他DBMS環境,我會推薦使用LINQ to SQL的實體框架,但要警告2008版本仍然有一些煩人的限制(不確定2010年左右)。

我永遠不會直接使用ADO.NET,如果我可以幫助它。這主要是因爲作爲開發人員,採用可應用於多個領域的工具對我來說是最有利的。我目前使用LINQ to Entities和Entity Framework與Oracle數據庫進行通信。 LINQ to SQL對此不起作用。

0

沒有任何理由在ADO.NET LINQ to SQL的