将ASP.Net标识和实体添加到同一数据库

时间:2017-05-13 14:35:24

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

我创建了一个新的ASP.NET MVC项目,我使用的是代码优先。我已将ASP.NET Identity添加到此项目enabled-migration中,并且可以在sql server express上查看我的数据库中的表。

我有一个“DefaultConnection”指向sqlserver上的数据库,如下所示:

 <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\SQLExpress;database=worksmartDB;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

现在,我很困惑如何通过代码首先将我的实体添加到同一个数据库中?以下是我的结构:

模型

 Applicant
 Template
MyProjectContext(which dervies from DBContext)


public class MyProjectContext: DbContext
{
    public MyProjectContext() : base("DefaultConnection")
    {
    }

public DbSet<Applicant> Applicants { get; set; }
public DbSet<Template> Templates { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{

    base.OnModelCreating(modelBuilder);
}

}

我尝试为此上下文启用迁移,但收到以下错误:

The context type 'MyProjectContext' was not found in the assembly 'MyProject'

我想为身份和实体使用相同的数据库。

1 个答案:

答案 0 :(得分:1)

嗯,我让它工作,不知道这是否是正确的方法。

然而,

在新项目中添加标识时,应执行以下操作:

- Change public ApplicationDbContext()
        : base("YourConnection", throwIfV1Schema: false)
Note: this connection string should point to the same database you are going to use
- Run the application in browser
- Register a user (this will create the database for you, if one does not exist)

- Now Enable-Migrations
- Update-Database

这是在项目中添加标识的一种方法。