Owin OAuth提供程序“实体类型IdentityUser不是当前上下文模型的一部分”

UserManagerFactory = () => new UserManager(new UserStore()); OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/Token"), Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory), AuthorizeEndpointPath = new PathString("/api/AccountOwin/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = true }; 

IdentityUser,UserStore来自哪个entity framework。

我想使用我的数据库而不是本地数据库,我从本地数据库表生成“生成”脚本,我在自定义数据库中创建它们,但是当我在下面的行中显示数据库上下文时:

 UserManagerFactory = () => new UserManager(new UserStore(new MyCustomDBEntities())); 

其中MyCustomDBEntities是我在entity framework中的自定义数据库(edmx)我收到以下错误:“实体类型IdentityUser不是当前上下文模型的一部分”

我做错了什么? 我应该创建自己的Usermanager吗?

 public class MyCustomDBEntities : IdentityDbContext { public MyCustomDBEntities() : base("name=ConnectionStringName") { } } 

我怀疑问题出在你的连接字符串上。 首先,上下文的构造函数只需要具有连接字符串的名称,因此您可以将其更改为:

 public MyCustomDBEntities() : base("ConnectionStringName") { } 

其次,这可能只是您在发布之前编辑代码,该名称需要与配置文件中的名称匹配:

  

最后,您可能需要更改连接字符串以使用标准SQL Server格式而不是EF格式。 所以它可能看起来像这样:

 Data Source=LNODA-PC;Initial Catalog=Dashboard;Persist Security Info=True;User Id=XXXX;Password=XXXXXX;MultipleActiveResultSets=True;