Asp.NET Identity IdentityUser自定义属性导致运行时错误

时间:2014-04-05 13:18:25

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

我正在使用包含Asp.NET Identity,WebAPI2,KnockoutJS和SqlServer Express 2012的VS2013 SPA模板编写应用程序。

我开始使用IdentityUser类来处理我的用户,并且工作得很好。我能够以没有问题的用户身份添加和登录。然后我想向IdentityUser添加自定义信息(有一篇文章我再也找不到了。)

因此,我创建了一个继承自User的{​​{1}}类,如下所示。

IdentityUser

然后我将项目中的所有引用从public class User : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } } 更新为IdentityUser

现在,每当我尝试登录时,都会收到以下错误:

  

实体类型User不是当前上下文的模型的一部分。

问题是,我有一个DBInitializer(User),它总是重新创建数据库并添加一些测试用户,并创建表并成功添加用户。

关于它的重要机会,这是我的cxn字符串:public class ApplicationDBInitializer : DropCreateDatabaseAlways<ApplicationDBContext>

和我的DBContext

<add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=ibcf;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

为什么会发生这种错误?

1 个答案:

答案 0 :(得分:0)

问题是Startup.Auth.cs继续引用默认的IdentityDbContext<User>数据库上下文。更新课程以引用我的ApplicationDBContext后,问题就解决了。

    static Startup()
    {
        ...

        UserManagerFactory = () => new UserManager<User>(new UserStore<User>(new ApplicationDBContext()));

        ...
    }