2012-11-23 124 views
0

實體框架或存儲過程/函數存儲程序和實體框架

  1. 哪個更好?
  2. 在哪些情況下使用存儲過程或實體框架會更好?
  3. 一種技術的性能比另一種更好嗎?

我已經使用這兩種方法來檢索和操作數據,並沒有真正的偏好。我認爲存儲過程/函數可以讓我們更清楚地分離問題。但使用C#開發查詢和操作數據的功能似乎更容易。

回答

1
  1. 哪個更好?

    • 如果存儲過程返回大數據結果和/或慢的連接> EF
    • 如果你真的很喜歡SQL和讀了一些關於如何使用遊標,並留喜歡它> SP
  2. 在哪種情況下使用存儲過程或實體框架會更好?

    • 如果您需要在小的時候做複雜的代碼> EF
    • 如果您需要過程biiiig對數據庫中的數據,查看記錄,做批量更新,使用觸發器> SP
  3. 是的一種技術的性能比另一種更好?

    • 您在EF中獲得1000條記錄,您將在內存中擁有1000個對象,但是,您如何使用代碼是此處的主要焦點。我使用SP做了一些大數據更新,它的速度真的非常快,因爲它在ON數據庫,不涉及TCP,沒有套接字,沒有流量。只是讀取/更新。但是,你們失去了這麼多的時間寫出好的SQL代碼...

另一件事去思考。如果你使用EF,你必須優先考慮把你所有的bussines邏輯集中在一個地方,使用部分類或擴展名..你不會對數據庫有太多邏輯。

+0

永遠不會考慮大量記錄集在內存中創建的大量對象的影響!很好的回答....謝謝! – RT88