ASP.NET MVC5实体框架应用程序中的单个上下文

时间:2014-04-09 20:29:19

标签: c# asp.net entity-framework

正如我在上一期的问题所示:"Define the key for this EntityType." when including attribute of type ApplicationUser

我需要使用单个数据库上下文,而我当前的设置是登录内容的一个上下文(在IdentityModel.cs中定义)和应用程序中所有其他数据库操作的另一个上下文(在外部定义)。

我如何使用单一上下文?我不关心现有数据。

2 个答案:

答案 0 :(得分:4)

您当然可以使用单一上下文。

以下是我的所作所为:

public class DataContext :  IdentityDbContext<ApplicationUser> 
{
    public DataContext()
        : base("DefaultConnection")
    {

    }

    public IDbSet<Project> Projects { set; get; }
    public IDbSet<Task> Tasks { set; get; }
}

然后在帐户控制器中:

public class AccountController : Controller
{
    public AccountController()
        : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DataContext())))
    {
    }

创建新项目时:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

你得到的这个没有太多信息,你也可以使用它并添加你的dbsets。它有来自AccountController的引用。

答案 1 :(得分:1)

只是对用于ASP.NET身份的数据上下文进行子类化。