Entity Framework Core 中的 DbContext

admin
admin
2021-06-03
分享:

Entity Framework Core 中的 DbContext

本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP)
本文出自《从零开始学 ASP.NET Core 与 EntityFramework Core》目录
视频课程效果更佳:跨平台开发实战掌握 ASP.NET Core 与 EntityFramework Core

在本章节中,我们将讨论 Entity Framework Core 中的 DbContext 类 的重要性。

它是 EF Core 中非常重要的类之一,DbContext 的作用是在我们的应用程序代码中用于与底层数据库交互的类。正是这个类在管理数据库连接,用于它查询和保存数据库中的数据。

在我们的应用程序中使用 DbContext

  • 我们创建一个派生自 DbContext 的类。
  • DbContext 类位于 Microsoft.EntityFrameworkCore 命名空间中。

  public class AppDbContext : DbContext
  { }

Entity Framework Core 中的 DbContextOptions

  • 为了使 DbContext 类能够执行任何有用的工作,它需要一个 DbContextOptions 类的实例。
  • 下述 DbContextOptions 实例会承载应用中的配置信息,如连接字符串,数据库提供商使用等
  • 要传递 DbContextOptions 实例,我们使用构造函数,如下例所示。
  • 我们要使用DbContext中的第二个重载方法,该重载方法是指定我们使用的配置信息。所以需要继承base将配置信息传递进去。
  • 有关 DbContextOptions 类的更多信息,会在我们学习 ASP.NET Core 中的数据库连接字符串时,进行学习.
public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options)
        : base(options)
    {
    }
}

Entity Framework Core DbSet

下面代码中的 DbContext 类包括一个DbSet <TEntity>模型,而在里面会包含一个实体属性。

  • 在我们的应用程序中,我们只有一个实体类 - Student。
  • 所以在我们的 AppDbContext 类中,只有一个 DbSet<Student>属性。
  • 我们将使用此 DbSet 属性 Students 来查询和保存 Student 类的实例。
  • 针对 DbSet<TEntity>的 LINQ 查询将被转换为针对底层数据库的查询。 我们将在后面的章节中看到这一点。
public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options)
        : base(options)
    {
    }

    public DbSet<Student> Students { get; set; }
}

为了能够连接到数据库,我们需要数据库连接字符串。在下一个视频中,我们将讨论在何处定义连接字符串并在 Entity Framework Core 中使用它。

文章说明

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权
感谢您对我的支持

关注微信公众号:角落的白板报

公众号:角落的白板报