在我的ASP.NET MVC應用程序中,我需要實現數據的持久性。我已經選擇了Entity Framework,因爲它能夠根據實體模型創建類,數據庫表和查詢,這樣我就不必手工編寫SQL表創建或Linq到SQL查詢。所以簡單是我的目標。在ASP.NET MVC應用程序中使用EntityFramework的持久性
我的方法是創建模型,並創建一個自定義的HttpModule
,並在每個請求處調用該對象,並在上下文中調用SaveChanges()
。這讓我的生活變得非常艱難 - 實體框架一直在拋出非常奇怪的例外。有時它有效 - 沒有例外,但有時它沒有。首先,我試圖逐個解決問題,但是當我得到另一個問題時,我意識到我的一般方法可能是錯誤的。
那麼這是在ASP.NET MVC應用程序中實現持久性的一般實踐嗎?每次更改後,我只需撥打saveChanges
?這不是沒有效率嗎?我不知道如何用Services patter做到這一點(服務與實體協同工作,所以我必須傳遞上下文實例給他們,這樣他們才能保存更改,如果他們做了一些)。
一些學習材料或教程的鏈接也受到讚賞。
注意:這個問題要求編程練習。我會問那些會認爲它含糊不清的人,記住它仍然在解決我非常特別的問題,正確的技術會在投票結束之前爲我節省很多技術問題。
通過閱讀你的描述我有,你正在使用的上下文的單一共享實例不好的感覺,只是調用'SaveChanges'上http模塊中的結束請求期間的實例。 – 2011-03-22 22:48:35
@Ladislav Mrnka你不好的感覺是對的,但現在我正在重建這個使用存儲庫模式。只需要弄清楚如何正確使用該模式。 – drasto 2011-03-23 04:40:22
在這裏你有描述爲什麼你目前的解決方案沒有工作:http://stackoverflow.com/questions/3653009/entity-framework-and-connection-pooling/3653392#3653392 – 2011-03-23 05:46:28