我有一個現有的Web應用程序,它具有一個數據層和一個調用數據層的bll。數據層是調用存儲過程的ado.net。現有的應用程序,我可以剛開始使用linq-to-sql嗎?有關整合的任何提示?
我在vs.net中爲linq-to-sql創建了另一個項目,將我所有的表格拖過去。
只需開始使用linq或者我應該花時間並重新編寫linq中的所有數據庫邏輯,這樣纔是明智的,所以我沒有任何有2個數據層的問題!
我有一個現有的Web應用程序,它具有一個數據層和一個調用數據層的bll。數據層是調用存儲過程的ado.net。現有的應用程序,我可以剛開始使用linq-to-sql嗎?有關整合的任何提示?
我在vs.net中爲linq-to-sql創建了另一個項目,將我所有的表格拖過去。
只需開始使用linq或者我應該花時間並重新編寫linq中的所有數據庫邏輯,這樣纔是明智的,所以我沒有任何有2個數據層的問題!
除非您當前的數據層由於某種原因而中斷,否則不要只是因爲可以開始實施新的數據層。
儘管如果當前數據層由使用存儲過程組成,並且維護起來很麻煩,那麼切換到L2S(或其他任何OR/M)可能是一個有效的原因。只是不要認爲這只是將某些列拖到畫布上而已完成的問題。依賴如果sprocs中有任何邏輯,邏輯必須存在某處...
我會說,直到你可以證明切換你的數據層的成本entirly,堅持你當前的實現。
如果沒有損壞,請不要修復它。
爲什麼要重寫完全正常工作的數據層? ADO.NET +存儲過程是一個不錯的選擇。收下。同時你可以開始玩LINQ。
無論如何,在你能夠決定新的數據層架構之前,你需要練習LINQ來看看它能做什麼,不能做什麼。在某些情況下,LINQ無法正確處理,因此您需要使用技巧或將默認實現替換爲您自己的查詢。在你可能決定的一天結束時,這是不值得的。
我的建議是單獨獲得一些經驗,並且不要因爲LINQ很酷而完全重寫所有內容。
請明確:Linq和LinqToSql有一個主要區別。 Linq很棒,你應該儘可能地使用它。 LinqToSql不是很大,有很多問題:
Do not use the Visual Studio 2008 LinqToSql O/R Designer
The drawbacks of adopting Linq To Sql
使用LINQ,你需要某種類型的ORM。 .NET世界中的ORM有很多選項。如果您喜歡LinqToSql提供的內容,那麼使用SubSonic可能會感到很舒服。從長遠來看,NHibernate現在是.NET ORM的最佳選擇。我寫了很多在這裏選擇.NET ORM:
.NET and ORM - Decisions, decisions
最後,沒有任何理由,你不能在同一應用程序的兩個或多個不同的數據層的技術。有很好的理由不這樣做,所以應儘可能避免。
而且,這裏是針對使用存儲過程令人信服的寫了起來:
閱讀標題和文章中,我提到的LINQ到SQL很清楚。 – mrblah 2009-08-31 17:57:33
在問題主體中,您使用了兩次非限定詞「Linq」,這非常令人困惑。 – 2009-08-31 18:43:07