3 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
由于DBA多年來一直在努力的所有原因,我通常支持將所有內(nèi)容都放在存儲過程中。對于Linq,確實(shí)與簡單的CRUD查詢沒有性能差異。
但在做出這個(gè)決定時(shí)要記住一些事項(xiàng):使用任何ORM將您緊密地聯(lián)系到您的數(shù)據(jù)模型。DBA無法自由更改數(shù)據(jù)模型,而無需強(qiáng)制更改已編譯的代碼。使用存儲過程,您可以在一定程度上隱藏這些類型的更改,因?yàn)閺倪^程返回的參數(shù)列表和結(jié)果集表示其合同,并且只要合同仍然滿足,就可以更改內(nèi)部條件。 。
而且,如果Linq用于更復(fù)雜的查詢,調(diào)整數(shù)據(jù)庫將變得更加困難。當(dāng)存儲過程運(yùn)行緩慢時(shí),DBA可以完全專注于代碼,并且有很多選項(xiàng),這樣只要合同在他/她完成時(shí)仍然滿足。
我已經(jīng)看到很多很多情況,通過更改存儲過程中的模式和代碼來解決應(yīng)用程序中的嚴(yán)重問題,而不會對已部署的已編譯代碼進(jìn)行任何更改。
也許一個(gè)混合方法對Linq來說會很好嗎?當(dāng)然,Linq可用于調(diào)用存儲過程。

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
對于基本數(shù)據(jù)檢索,我會毫不猶豫地去找Linq。
自從搬到Linq后,我發(fā)現(xiàn)了以下優(yōu)點(diǎn):
調(diào)試我的DAL從未如此簡單。
當(dāng)架構(gòu)更改無價(jià)時(shí),編譯時(shí)間安全性。
部署更容易,因?yàn)樗袃?nèi)容都編譯成DLL。不再管理部署腳本。
因?yàn)長inq可以支持查詢實(shí)現(xiàn)IQueryable接口的任何內(nèi)容,所以您將能夠使用相同的語法來查詢XML,對象和任何其他數(shù)據(jù)源,而無需學(xué)習(xí)新的語法
添加回答
舉報(bào)