2014-04-29 17 views
0

我在服務器上的數據庫中有一些數據。我有2個選項,從服務器獲取所需的數據:存儲過程與實體框架查詢

  1. 實體框架自動生成的查詢
  2. 在EF使用存儲過程。

哪個選項更好?

假設所需數據是具有單個輸入參數的例程查詢的表的某些確定行。例如,假設此查詢:

SELECT * 
FROM MyTable 
WHERE someColumn = inputParameterValue 

您的建議是什麼?編寫一個SP並通過EF調用它或編寫一個c#查詢,以便EF自動生成所需的查詢?!

感謝您的關注!

+0

如果您不在c#中編寫查詢,EF的使用非常少。但是..只要明確需要,總是要進行分析和編寫SP。 – gaurav

+0

你有什麼要求? –

+1

你已經有這些存儲過程了嗎?如果沒有,並且如果你的查詢真的是這麼簡單 - 只需使用EF,它就是完美的選擇。它使用起來很快,開發人員的工作效率很高,而且它在SQL Server中工作得很好(使用**參數化查詢**,它可以安全地執行SQ​​L注入,並且性能應該與在SQL Server端使用手寫存儲過程相當) –

回答

0

還有其他的考慮因素,不只是表現。你可能想問一下你的標準編碼風格更適合什麼。

我會做幾件事情是:

1)配置文件中的存儲過程和EF呼叫使用SQL /持久性媒體分析器。

2)也許檢查由LINQ發送到EF提供程序的LINQ,例如使用LinqPAD(或者 - 它只是在調用上下文調用時調用解決方案時發生的)。然後做出判斷電話。

+0

謝謝@brumSource,但我的上述問題的目標是一般比較,我不只是一個案例研究,以配置文件 – Merta