对我的自定义实体和身份上下文使用相同的数据库?

时间:2015-09-01 07:57:21

标签: asp.net-mvc entity-framework asp.net-identity

我想创建一个带有用户登录/身份验证等的MVC网站。

我正在使用EF CodeFirst来创建我的数据库。

如果我创建一个新的MVC项目并选择Authentication:Individual User Accounts,它将创建一个包含已存在的IdentityDbContext等的新项目。

我是否打算继续使用这个以及我自己的DbContext?我的项目实体的一个上下文,以及Identity实体的另一个上下文?这是否意味着我将拥有两个独立的数据库,或者我可以为它们提供相同的连接字符串吗?

我知道这可能是一个开放式的问题,但AspNet Identity是否有任何好的资源/教程?

到目前为止,我只找到有关AspNet Identity本身的资源,而不是如何将其与项目/数据库的其余部分集成

1 个答案:

答案 0 :(得分:6)

您可以为自定义模型上下文和标识上下文指定相同的连接字符串,您只需要更改驻留在IdentityModels.cs文件中的ApplicationDbContext类的构造函数中的连接字符串,就像这样:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("YouCustomConnectionString", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

并且身份所需的表将在与其他实体相同的数据库中创建,对于资源,有一组关于身份here的文章很好。