【发布时间】:2019-04-04 08:30:04
【问题描述】:
我从 .NET 3.0 升级了我的 .NET 2.0 Web 应用程序。它现在可以编译,但是当我尝试登录时出现错误“InvalidOperationException:无法为 'ApplicationUser' 创建 DbSet,因为此类型未包含在上下文模型中”。显然无法完成对数据库的调用,但我看不到我的错误是什么。
我在 Startup.cs (ConfigureServices) 中得到了这个
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
这是我的 ApplicationDBContext.cs:
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
错误堆栈如下所示:
Microsoft.EntityFrameworkCore.Internal.InternalDbSet.get_EntityType() Microsoft.EntityFrameworkCore.Internal.InternalDbSet.CheckState() Microsoft.EntityFrameworkCore.Internal.InternalDbSet.get_EntityQueryable() Microsoft.EntityFrameworkCore.Internal.InternalDbSet.System.Linq.IQueryable.get_Provider() Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ExecuteAsync(MethodInfo operatorMethodInfo,IQueryable 源, 表达式表达式,CancellationToken cancelToken) Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ExecuteAsync(MethodInfo operatorMethodInfo,IQueryable 源, LambdaExpression 表达式,CancellationToken cancelToken) Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.FirstOrDefaultAsync(IQueryable 源,表达式>谓词,CancellationToken 取消令牌) Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore.FindByNameAsync(字符串 normalizedUserName, CancellationToken 取消令牌) Microsoft.AspNetCore.Identity.UserManager.FindByNameAsync(字符串 用户名) Microsoft.AspNetCore.Identity.SignInManager.PasswordSignInAsync(字符串 用户名、字符串密码、bool isPersistent、bool lockoutOnFailure) ImSmart.Controllers.AccountController.Login(LoginViewModel 模型, AccountController.cs 中的字符串 returnUrl) + var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, lockoutOnFailure: true); Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper 映射器,ObjectMethodExecutor 执行器,对象控制器,对象[] 论据)
我可能缺少什么?
【问题讨论】:
标签: c# asp.net-identity asp.net-core-3.0