Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net core 2.1中类控制器中的数据库_C#_Controller_.net Core - Fatal编程技术网

C# .net core 2.1中类控制器中的数据库

C# .net core 2.1中类控制器中的数据库,c#,controller,.net-core,C#,Controller,.net Core,我正在学习我的一门课程,关于.NETCore2.1Web开发,我对这门课程不太熟悉,我了解其中的大部分内容,尽管这一切看起来也有点奇怪。下面的代码中有一个奇怪的部分我没有完全理解。(尽管如此,我还是到处使用它)。虽然我知道需要一个数据库,但在下面的代码中我并没有真正理解_db和db。(我不是以英语为母语的人)所以我没能解释清楚。有人能用_db和db解释一下下面的代码中发生了什么吗 using System; using System.Collections.Generic; using Syst

我正在学习我的一门课程,关于.NETCore2.1Web开发,我对这门课程不太熟悉,我了解其中的大部分内容,尽管这一切看起来也有点奇怪。下面的代码中有一个奇怪的部分我没有完全理解。(尽管如此,我还是到处使用它)。虽然我知道需要一个数据库,但在下面的代码中我并没有真正理解_db和db。(我不是以英语为母语的人)所以我没能解释清楚。有人能用_db和db解释一下下面的代码中发生了什么吗

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using GraniteHouse.Data;
using GraniteHouse.Models;
using Microsoft.AspNetCore.Mvc;

namespace GraniteHouse.Areas.Admin.Controllers
{
[Area("Admin")]
public class ProductTypesController : Controller
{

    private readonly ApplicationDbContext _db;

    public ProductTypesController(ApplicationDbContext db)
    {
        _db = db;  //some kind of self refrence but why ???
    }

这是依赖注入。基本上,IoC容器是在
ApplicationDbContext
的实例中注入的。然后将其分配给一个只读字段,该字段可从类中的其他方法使用(这是必需的,因为
db
在其所在的方法之外不可用,但
\u db
可在整个类中访问)。有什么你不明白的吗?所有这些操作都是将私有变量设置为传递给构造函数的值。你是在问什么是构造函数吗?赋值给变量做什么?还有别的吗?