【发布时间】:2014-05-17 20:46:49
【问题描述】:
我正在使用 VS2013 SPA 模板编写一个应用程序,其中包括 Asp.NET Identity、WebAPI2、KnockoutJS 和 SqlServer Express 2012。
我开始使用IdentityUser 类来处理我的用户,并且效果很好。我能够毫无问题地以用户身份添加和登录。然后我想向 IdentityUser 添加自定义信息(有一篇文章我再也找不到了)。
因此,我创建了一个继承自 IdentityUser 的 User 类,如下所示。
public class User : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
然后我将项目中的所有引用从IdentityUser 更新为User。
现在,每当我尝试登录时,都会收到以下错误:
实体类型 User 不是当前上下文模型的一部分。
问题是,我有一个 DBInitializer (public class ApplicationDBInitializer : DropCreateDatabaseAlways<ApplicationDBContext>),它总是重新创建数据库并添加一些测试用户,然后创建表并成功添加用户。
如果不重要,这是我的 cxn 字符串:<add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=ibcf;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
还有我的 DBContext
public class ApplicationDBContext : IdentityDbContext<User>
{
public ApplicationDBContext()
: base("DefaultConnection")
{
}
}
为什么会出现这个错误?
【问题讨论】:
-
如果有帮助,请尝试检查:stackoverflow.com/questions/20688922/…
-
我试过了,但是 User 应该映射到 AspNetUsers 并且通过手动执行它会导致弹出一个全新的错误。
-
分享你在
ApplicationDBContext类中对OnModelCreating的实现,如果你有的话
标签: c# asp.net entity-framework asp.net-web-api asp.net-identity