【问题标题】:Add ASP.Net Identity and Entities to same database将 ASP.Net 身份和实体添加到同一数据库
【发布时间】:2017-05-13 14:35:24
【问题描述】:

我创建了一个新的 ASP.NET MVC 项目,我使用的是代码优先。我已将 ASP.NET 标识添加到此项目启用迁移中,并且可以在 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'

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

【问题讨论】:

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


    【解决方案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
    

    这是在您的项目中添加身份的一种方式。

    【讨论】:

    • 什么?所以你问一个问题,然后为你没有问的问题写一个答案。
    • 我不明白,这个“答案”与我所要求的内容没有关联或进一步详细说明。我已经在顶部列出了导致问题的原因,并指出我采取了哪些步骤以供将来参考。 @AmelSalibasic
    • 我发现这很有用 - 我被困在同一个地方,我更新了我所有的“上下文”类以指向同一个连接字符串,但我没有让身份表弹出我的数据库。我没有想到您必须注册用户才能在指定的数据库中生成表
    • 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2014-10-28
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    相关资源
    最近更新 更多