簡體   English   中英

帶有實體框架的ASP.NET MVC

[英]ASP.NET MVC with Entity Framework

我認為在Application_BeginRequest中設置Entity對象上下文,將它存儲在Request.items中,在整個請求中使用它並將其部署在Application_EndRequest中是明智的。 這樣,上下文始終可用,我可以在我的視圖中導航實體框架對象圖,延遲加載我尚未急切獲取的內容。

我認為這會讓它像在Ruby on Rails上開發一樣。

可能是因為說出這樣的異端邪說我應該被槍殺,但它太瘋狂了它可能會起作用:)

我無法在ASP.NET MVC上啟動Application_BeginRequest和..EndRequest。 他們不是被解雇了嗎? 我需要做什么特別的伎倆?

EF中的對象上下文,如L2S中的數據上下文,被設計為“工作單元”,它們不是線程安全的,並且它們的設計並不長久。

在MVC中,最好的策略是在控制器的構造函數中創建一個(隱式或顯式,無關緊要),然后將它配置在Dispose方法中。 當然,EF不會進行延遲加載,所以你必須找到自己的懶惰方式。 :)

ASP.NET MVC的1.0版本允許我在beginrequest和endrequest上連接事件處理程序,新建一個SessionScope並將其存儲在beginrequest中的HttpContext.Items中(我切換到Castle ActiveRecord)並在endrequest中從HttpContext中選擇sessionscope .Items並處理它。 這可以在整個請求生命周期中啟用延遲加載。 (甚至可以在視圖中導航對象圖。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM