ASP.NET Core MVC 在引用数据库连接时生成异常错误

Posted

技术标签:

【中文标题】ASP.NET Core MVC 在引用数据库连接时生成异常错误【英文标题】:ASP.NET Core MVC generates an exception error when referencing a database connection 【发布时间】:2022-01-04 16:31:18 【问题描述】:

我在控制器中有以下代码,执行时会在浏览器中向用户显示视图:

public class PlayerController : Controller


    private readonly IPlayerRepository repo;
    public IActionResult Index()
    
        return View();
    
    [HttpPost]
    public ActionResult Index(Player person)
    
        var lastName = person.LastName;
        var firstName = person.FirstName;
        var callPlayer = new PlayerInit();
        var returnPlayer = callPlayer.SetUpPlayer(lastName, firstName);

        return View();
    

当我添加这段代码时,抛出异常:

    public PlayerController(IPlayerRepository repo)
    
        this.repo = repo;
    

这是被抛出的异常:

我在不同的控制器中有类似的代码,我能够运行该控制器以通过 dapper 访问 mysql 数据库并将结果显示到视图中。我不确定为什么这个特定控制器中的代码有问题。

谢谢!

【问题讨论】:

错误很明显,与数据库无关。您是否注册了任何IPlayerRepository 派生类?您的 Startup.cs 是什么样的? 【参考方案1】:

通常这个错误是因为在 Startup.cs 文件中 ConfigureServices 方法不包含将依赖注入容器的代码。

public void ConfigureServices(IServiceCollection services)

    // OMITTED

    services.AddScoped<IPlayerRepository, PlayerRepository>();

    // OMITTED

您还可以查看有关从here 开始的 dotnet 中所有依赖注入如何工作的文档。

【讨论】:

以上是关于ASP.NET Core MVC 在引用数据库连接时生成异常错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp.Net Core Mvc 5.0 中将 sql 数据库与 ado.net 连接?

ASP.NET Core MVC MySQL 服务器连接

asp.net core 5 mvc 超级管理员连接

单独程序集中的 ASP.NET Core MVC 控制器

asp.net core mvc权限控制:分配权限

在使用 IdentityDbContext 的情况下,如何在 ASP.NET Core MVC 中使用存储库模式?