我正在将一个ASP.NET Core应用程序从2.2框架升级到3.1。它还使用Entity Framework Core。
在Startup.ConfigureServices方法中,有这段代码:
services.AddEntityFrameworkNpgsql()
.AddDbContext<MainDbContext>(options => options
.UseNpgsql(Configuration.GetConnectionString("MainDbContext")));
.NET Core 2.2时一切正常,但在.NET Core 3.1中,每次应用程序启动时都会收到此警告:
在服务提供程序上调用了 'AddEntityFramework*',但在 DbContext 选项配置中没有调用 'UseInternalServiceProvider'。在大多数情况下,删除 'AddEntityFramework*' 调用是不需要的,且可能会与注册在同一服务提供程序中的其他产品和服务发生冲突。
查找 UseInternalServiceProvider
方法,看起来应该在 options
上调用它以传递主服务提供程序。不幸的是,在这一点上,服务提供程序尚不存在。它即将被构建。
我不理解问题所在和这个警告想要告诉我的内容,但却失败了。如何让这个警告消失呢?网络上还不知道这个消息。
AddEntityFrameworkWhatever
,这是.UseSqlServer
或.UseNpgsql
的工作。你确定需要这个调用吗? - Panagiotis Kanavos