我在服務器上的數據庫中有一些數據。我有2個選項,從服務器獲取所需的數據:存儲過程與實體框架查詢
- 實體框架自動生成的查詢
- 在EF使用存儲過程。
哪個選項更好?
假設所需數據是具有單個輸入參數的例程查詢的表的某些確定行。例如,假設此查詢:
SELECT *
FROM MyTable
WHERE someColumn = inputParameterValue
您的建議是什麼?編寫一個SP並通過EF調用它或編寫一個c#查詢,以便EF自動生成所需的查詢?!
感謝您的關注!
我在服務器上的數據庫中有一些數據。我有2個選項,從服務器獲取所需的數據:存儲過程與實體框架查詢
哪個選項更好?
假設所需數據是具有單個輸入參數的例程查詢的表的某些確定行。例如,假設此查詢:
SELECT *
FROM MyTable
WHERE someColumn = inputParameterValue
您的建議是什麼?編寫一個SP並通過EF調用它或編寫一個c#查詢,以便EF自動生成所需的查詢?!
感謝您的關注!
還有其他的考慮因素,不只是表現。你可能想問一下你的標準編碼風格更適合什麼。
我會做幾件事情是:
1)配置文件中的存儲過程和EF呼叫使用SQL /持久性媒體分析器。
2)也許檢查由LINQ發送到EF提供程序的LINQ,例如使用LinqPAD(或者 - 它只是在調用上下文調用時調用解決方案時發生的)。然後做出判斷電話。
謝謝@brumSource,但我的上述問題的目標是一般比較,我不只是一個案例研究,以配置文件 – Merta
如果您不在c#中編寫查詢,EF的使用非常少。但是..只要明確需要,總是要進行分析和編寫SP。 – gaurav
你有什麼要求? –
你已經有這些存儲過程了嗎?如果沒有,並且如果你的查詢真的是這麼簡單 - 只需使用EF,它就是完美的選擇。它使用起來很快,開發人員的工作效率很高,而且它在SQL Server中工作得很好(使用**參數化查詢**,它可以安全地執行SQL注入,並且性能應該與在SQL Server端使用手寫存儲過程相當) –