1
我正在使用MVC +實體框架5,目前正在查看Unit of Work pattern。在控制器類我看到下面的代碼:實體框架工作單元模式對象生命週期
private UnitOfWork unitOfWork = new UnitOfWork();
這是否意味着,對於每一個控制器UnitOfWork
類被創建,導致每UnitOfWork
實例的數據庫連接?或者做所有DbContext
實例(本文中SchoolContext
實例在UnitOfWork
中創建)共享相同的連接?
我的第二個問題:當只有一個UnitOfWork
實例被創建存儲在HttpContext
中,還是有更好的方法時,它是否會提高應用程序的性能?
謝謝!我在博客上閱讀了「HttpContex」存儲方法,是否類似於單例模式,這也意味着它是錯誤的? – Marthijn
@Marthijn - 不,沒有什麼「錯誤」,但我通常不需要它,除非在某些罕見的情況下。 HttpContexts也僅適用於單個請求,因此如果向請求添加上下文,請求結束後它將被銷燬(儘管您應該在Application_EndRequest事件中手動處理它)。我沒有看到使用這種技術的任何收益。 –
將您的工作單元存儲在請求中是我已經完成了幾年的工作,並且在網站上執行了相當大的流量(每天的百萬+ pgs)方面取得了成功。我最初擔心的是連接限制,但作爲「Myster Man」,EF和ADO做了一些黑巫術來保持游泳池的連續性。 – Doug