首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InvalidOperationException: MVC

InvalidOperationException: MVC
EN

Stack Overflow用户
提问于 2020-11-08 11:46:52
回答 2查看 39关注 0票数 0

尝试自学MVC。我首先在MVC模式中使用数据库。我已经搭建了控制器和视图。然而,当我运行它时,我得到了这个错误?我不知道该怎么做,因为这是通过自动生成的。

代码语言:javascript
复制
InvalidOperationException: Unable to resolve service for type 'OPPS_APP11_7_2020.Models.ENT_PLANNERContext' while attempting to activate 'OPPS_APP11_7_2020.Controllers.ProductsController'.
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, bool isDefaultParameterRequired)
EN

回答 2

Stack Overflow用户

发布于 2020-11-08 12:14:02

似乎在ProductController构造函数中有数据库上下文,而在configureServices中却没有使用startup.cs中的依赖项注入(DI)进行注册。如果您不熟悉ASP.Net核心中依赖项注入,建议您阅读一下MS Docs

如果你正在使用实体框架(EF),有一些特殊的方法可以在DI中添加它们的上下文。检查此Configuring a DbContext in EF Core, Ms Docs

票数 0
EN

Stack Overflow用户

发布于 2020-11-09 13:57:30

在使用Scaffold-DbContext命令基于现有数据库生成相关模型和dbcontext之后,必须在启动的ConfigureServices方法中将DbContext注册为依赖项注入。

尝试添加以下代码:

代码语言:javascript
复制
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
        //register the dbcontext.
        services.AddDbContext<ENT_PLANNERContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    }

您可以在appsetting.json文件中添加连接字符串:

代码语言:javascript
复制
  "ConnectionStrings": {
    "DefaultConnection": "{your database connection string}"
  }

参考资料:

https://www.entityframeworktutorial.net/efcore/create-model-for-existing-database-in-ef-core.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64734623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档