簡體   English   中英

處理實體框架上下文

[英]Handling Entity-Framework Context

在新的MVC-5模板中, App_Start文件夾中有一個名為Startup.Auth.cs的文件,其中包含以下幾行(以及其他一些數據):

// Configure the db context and user manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

a single instance per request意味着什么? 像這樣調用ApplicationDbContext什么區別:

var context = HttpContext.GetOwinContext().Get<ApplicationDbContext>();

並將此聲明放置為Controller class的字段:

public class HomeController : Controller
{
    private ApplicationDbContext context = new ApplicationDbContext();

是否有處理context的首選方法? 是提供contextsingleton class嗎?

這只是在調用任何一種操作方法時創建上下文對象的便捷方法。 您希望每個請求一個實例,因為您希望所有對象都附加到同一上下文實例。 您還希望上下文的生命周期為請求生命周期。

如果要使用第二種方法,則private ApplicationDbContext context = new ApplicationDbContext(); 您必須將其放入每個控制器中。 您可以創建某種功能相同的基本控制器,並且僅從您的基本控制器繼承。

同樣,這只是用於演示的一種便捷方法。

暫無
暫無

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

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