Entity framework 从模型到数据库的路径是什么?

Entity framework 从模型到数据库的路径是什么?,entity-framework,asp.net-core,Entity Framework,Asp.net Core,我在VS中使用ASP.NET核心Web应用程序模板创建了一个项目。运行时,该项目将创建一个数据库以支持标识包 标识包是一个Razor类库。我已经搭建了脚手架,可以看到模型。这些模型从Microsoft.AspNetCore.Mvc.RazorPages.PageModel中进行子分类 我正在跟踪代码,试图更好地理解它是如何工作的。我试图找到从模型到物理数据库的路径 在文件appsettings.json中,我看到连接字符串DefaultConnection指向物理数据库 在startup.cs中

我在VS中使用ASP.NET核心Web应用程序模板创建了一个项目。运行时,该项目将创建一个数据库以支持标识包

标识包是一个Razor类库。我已经搭建了脚手架,可以看到模型。这些模型从Microsoft.AspNetCore.Mvc.RazorPages.PageModel中进行子分类

我正在跟踪代码,试图更好地理解它是如何工作的。我试图找到从模型到物理数据库的路径

在文件
appsettings.json
中,我看到连接字符串
DefaultConnection
指向物理数据库

startup.cs
中,我看到了对连接字符串
DefaultConnection
的引用:

services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"))); 
services.AddDbContext(选项=>
options.UseSqlServer(
GetConnectionString(“DefaultConnection”);

在这之后,我失去了踪迹。我找不到从代码中的模型到数据库中的表的链接。执行类似以下查询所需的代码是什么?
select*from AspNetUsers

正如@Daniel Schmid所建议的,您应该首先学习

ASP.NET Core具有出色的依赖项注入功能,通过该功能,此框架可以为您提供所需的任何类的对象。因此,您不必在代码中手动创建类对象

EF Core支持将
DbContext
与依赖项注入容器一起使用。可以使用
AddDbContext
方法将您的
DbContext
类型添加到服务容器中

然后您可以使用如下实例:

public class MyController
{
    private readonly ApplicationDbContext _context;

    public MyController(ApplicationDbContext context)
    {
       _context = context;
    }

    ...
}
或者直接使用ServiceProvider,不太常见:

using (var context = serviceProvider.GetService<ApplicationDbContext>())
{
    // do stuff
}

var options = serviceProvider.GetService<DbContextOptions<ApplicationDbContext>>();

另请阅读。

这是您使用DefaultConnection ConnectionString配置的ApplicationDbContext。您需要的是该上下文的实例。您可以从依赖项注入中获得它,并将其传递给要使用它的类的构造函数。有了这个实例,您就可以访问用户了。(例如db.AspNetUsers.ToList())将生成类似于select*from AspNetUsers的内容)我非常推荐channel9上的101个视频和上面
services.AddDbContext
方法中的(入门)文档,这样添加的
ApplicationDbContext
如何在我的代码中的其他地方被引用和访问?要理解这一点,您需要理解依赖注入(DI)和控制反转(IC)。上面的代码将上下文添加到DI容器中。然后,您可以将其注入到您喜欢的任何类中。DI负责实例化和更多。模板项目在任何地方都使用DI,它在asp.net核心和一般编程中都是一个非常重要的概念。您需要了解这一点,而不仅仅是通过查看模板项目。所以我重复一遍——阅读文档和/或观看介绍性视频
var users = _context.Users.ToList();