哪一個更適合企業CMS開發: LINQ或SP?Linq vs存儲過程
回答
通常我做的是LINQ to Views和LINQ to Stored Procedures。這不是一個什麼是首選的問題,因爲LINQ解決了如何管理數據,一旦查詢SQL存儲過程在SQL端運行的位置,以允許對代碼進行查詢操作(或對我來說,主要是保存)的數據要做到這一點比較慢。
我會說你會想要使用兩者,如果有必要。您是否將要求多個表格的實體保存爲一個實體?如果是這樣,請使用LINQ的存儲過程。如果你使用1到1的實體關係到你的表,那麼就使用LINQ。
我會緩存CMS數據庫的結果,因爲您可能會一次又一次地獲取相同的數據請求(緩存數據集,或者使用頁面緩存,或者在使用LINQ時緩存對象)。
然後,如果您使用LINQ或SP,這並不重要,但我只是使用LINQ。
存儲過程可以用於Linq2Sql(和實體框架),所以它不是一個或另一個的選擇。
對於簡單的CRUD表(沒有加入!)操作的LINQ to SQL是好的,但是,對於任何事情更復雜(需要連接)我總是使用存儲過程(你可以,如果你想使用LINQ到存儲過程)
在這個網站和其他網站上有很多關於此的爭論。對我而言,通常你可以將臨Linq陣營分成最近進入編程階段並且還沒有使用存儲過程的歷史,即沒有大量參與以前項目的數據庫方面。
形成我使用純LINQ,存儲過程以及這兩者混合使用的幾個項目的經驗是我堅持使用Linq獲得基本CRUD和存儲過程的兩個理由,因爲它更復雜或依賴於性能。
1 - 部署/安全 - 任何在現實世界中工作過的人都知道,將數據庫邏輯分成存儲過程並且不納入源代碼和發佈DLL是一個巨大的優勢。您可以使用角色和SQL服務器安全性爲每個查詢添加適當的安全性/訪問層,這對任何嚴重的企業級公司都是必不可少的,您還可以更改任何存儲過程的SQL,而無需執行主版本的新發布應用程序(dll)。我不在乎你聲稱自己有多好,因爲我們都必須使用存儲過程來解決實時問題和性能瓶頸,並且必須在新的應用程序版本中這樣做纔會是一場噩夢。
2 - 性能/代碼嗅覺 - 我看到如此多的應用程序散佈着大量嚴重寫入和低效率的Linq。開發人員對Linq,一些隱藏的懶惰的Linq到SQL查詢很懶惰,這會導致你在企業級系統上嘗試調試性能問題的噩夢 - 「儘快完成它」的座右銘似乎盛行。自從Linq出現以來,我已經看到了更多的意大利麪條代碼,而不是我從COM以前發佈的任何以前的類庫/模式所見過的代碼。
- 1. 性能的LINQ VS SQL存儲過程
- 2. 存儲過程vs Linq2Entities
- 3. linq和存儲過程
- 4. Linq在存儲過程中
- 5. 存儲過程vs無存儲過程 - 安全視點
- 6. LINQ vs存儲過程與內聯查詢
- 7. MySQL存儲過程vs PHP腳本
- 8. VS 2010中的多個存儲過程
- 9. PHP框架和ORM vs存儲過程
- 10. 存儲過程VS SQLCLR觸發
- 11. Excel 2010 vs Excel 2013 VBA存儲過程
- 12. LINQ到SQL - 問題在存儲過程
- 13. 鏈LINQ的IQueryable,並與存儲過程
- 14. 存儲過程不能用LINQ執行
- 15. 用存儲過程LINQ to DATASET更新
- 16. 在LINQ中使用存儲過程?
- 17. LINQ to SQL:存儲過程結果
- 18. Linq - 中斷執行存儲過程
- 19. LINQ to SQL - 嵌套存儲過程
- 20. 調用存儲過程的LINQ很慢
- 21. 用linq調用存儲過程
- 22. F#Linq to sql - 調用存儲過程
- 23. SQL Server存儲過程和Linq-to-SQL
- 24. 手動鏈接存儲過程到LINQ
- 25. 獲得使用LINQ和存儲過程
- 26. 在存儲過程中使用Linq
- 27. LINQ與存儲過程的XML Raw
- 28. EF 4存儲過程與LINQ混合
- 29. 存儲過程比LINQ查詢慢嗎?
- 30. ASP.Net MVC3 - Linq to SQL或存儲過程?