首页 > 解决方案 > Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll 中发生“System.InvalidOperationException”

问题描述

我正在尝试制作一个 .NET 核心 Web 应用程序当我构建解决方案时,我收到以下错误帮助我。我的

它还显示了关于包兼容性的错误,所有这些都是在我更新我的库后发生的

我试图在我的 csproj 文件中更改版本号,但它会产生更多错误帮助我解决这个问题

输出选项卡中的错误

Exception thrown: 'System.InvalidOperationException' in Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll
An exception of type 'System.InvalidOperationException' occurred in Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll but was not handled in user code
AddEntityFrameworkStores can only be called with a user that derives from IdentityUser<TKey>.

Startup.cs 文件

{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddDbContext<MyContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]));
            services.AddIdentity<Customer, ApplicationRole>()
                .AddEntityFrameworkStores<MyContext>()
                .AddDefaultTokenProviders();

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseIdentity();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

                //Admin area routes
                routes.MapRoute(
                    name: "AdminAreaRoute",
                    template: "{area:exists}/{controller=Products}/{action=Index}/{id?}");
            });
        }
    }
}

我也收到此错误

1>D:\Projects\Ghost- depricated\Ghost\Ghost.csproj : warning NU1701: Package 'EntityFramework 6.2.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project.
1>D:\Projects\Ghost- depricated\Ghost\Ghost.csproj : warning NU1701: Package 'Microsoft.AspNet.Identity.AspNetCoreCompat 0.3.4' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project.
1>D:\Projects\Ghost- depricated\Ghost\Ghost.csproj : warning NU1701: Package 'Microsoft.AspNet.Identity.Core 2.2.2' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project.
1>D:\Projects\Ghost- depricated\Ghost\Ghost.csproj : warning NU1701: Package 'Microsoft.AspNet.Identity.EntityFramework 2.2.2' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project.

标签: c#visual-studio-2019

解决方案


尝试卸载EntityFramework 6.2.0然后安装Microsoft.EntityFrameworkCore包:

Install-Package Microsoft.EntityFrameworkCore -Version 2.2.6在包管理器控制台中执行命令

或手动安装:

右键单击项目 > 管理 nuget 包... > 浏览选项卡 > 键入 Microsoft.EntityFrameworkCore 然后安装它


推荐阅读