Entity Framework Core系列教程-4 DbContext

Entity Framework Core:DbContext

DbContext类是Entity Framework Core的组成部分。 DbContext实例代表与数据库的会话,可用于查询实体实例并将其保存到数据库。 DbContext是工作单元和存储库模式的组合。
EF Core中的DbContext允许我们执行以下任务:

  • 管理数据库连接
  • 配置模型和关系
  • 查询数据库
  • 将数据保存到数据库
  • 配置变更跟踪
  • 缓存
  • 事务管理

要在我们的应用程序中使用DbContext,我们需要创建从DbContext派生的类,也称为上下文类。该上下文类通常包括模型中每个实体的DbSet <TEntity>属性。以下为EF Core中DbContext类的示例。

public class SchoolContext : DbContext
{
    public SchoolContext()
    {
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
    }
    //实体
    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
} 

在上面的示例中,SchoolContext类派生自DbContext类,并且包含Student和Course类型的DbSet <TEntity>属性。它还将重写OnConfiguring和OnModelCreating方法。我们必须创建SchoolContext实例以连接到数据库并保存或检索学生或课程数据。
OnConfiguring()方法允许我们使用DbContextOptionsBuilder选择和配置要与上下文一起使用的数据源。在此处了解如何配置DbContext类。
OnModelCreating()方法允许我们使用ModelBuilder Fluent API配置模型。

DbContext方法

MethodUsage
Add将一个新实体添加到具有添加状态的DbContext中,并开始对其进行跟踪。调用SaveChanges()时,会将新的实体数据插入数据库。
AddAsync用于向状态为“已添加”的DbContext添加新实体并开始对其进行跟踪的异步方法。调用SaveChangesAsync()时,会将新的实体数据插入数据库。
AddRange将具有添加状态的新实体集合添加到DbContext并开始对其进行跟踪。调用SaveChanges()时,会将新的实体数据插入数据库。
AddRangeAsync用于添加将保存在SaveChangesAsync()上的新实体集合的异步方法。
Attach将新的或现有的实体附加到状态不变的DbContext并开始跟踪它。
AttachRangeAttachRange将新实体或现有实体的集合以未更改的状态附加到DbContext并开始对其进行跟踪。
Entry获取给定实体的EntityEntry。该条目提供对实体的更改跟踪信息和操作的访问。
Find查找具有给定主键值的实体。
FindAsync用于查找具有给定主键值的实体的异步方法。
Remove移除将删除状态设置为指定的实体,当调用SaveChanges()时,该实体将删除数据。
RemoveRange将Deleted状态设置为一组实体,这些实体将在调用SaveChanges()时在一次数据库往返中删除数据。
SaveChanges对状态为“已添加”,“已修改”或“已删除”的实体执行INSERT,UPDATE或DELETE命令到数据库。
SaveChangesAsyncSaveChanges()的异步方法
SetSet创建一个DbSet <TEntity>,可用于查询和保存TEntity的实例。
Update附加状态为“已修改”的断开连接的实体,并开始对其进行跟踪。调用SaveChagnes()时将保存数据。
UpdateRange附加状态为“已修改”的断开连接的实体的集合,并开始对其进行跟踪。调用SaveChagnes()时将保存数据。
OnConfiguring重写此方法,以配置要用于此上下文的数据库(和其他选项)。创建的上下文的每个实例都会调用此方法。
OnModelCreating重写此方法,以进一步配置根据约定从派生上下文的DbSet <TEntity>属性中公开的实体类型发现的模型。

DbContext属性

ModelUsage
ChangeTracker提供对该上下文正在跟踪的实体实例的信息和操作的访问。
Database提供对此上下文的数据库相关信息和操作的访问。
Model返回有关实体的形状,它们之间的关系以及它们如何映射到数据库的元数据。

在下一章中学习如何创建第一个简单的EF Core控制台应用程序。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!我可以为您提供有关Entity Framework Core教程Entity Framework Core是一个面向对象的关系映射器,用于在.NET应用程序中处理数据库操作。它是Entity Framework的轻量级、跨平台版本。 以下是一个简单的教程,帮助您入门使用Entity Framework Core: 1. 安装Entity Framework Core:首先,您需要使用NuGet包管理器或通过命令行安装Entity Framework Core。在NuGet包管理器控制台中运行以下命令: ``` Install-Package Microsoft.EntityFrameworkCore ``` 2. 创建数据模型类:定义您的数据模型类,它们将映射到数据库表。例如,如果您正在构建一个博客应用程序,可以创建一个名为`Post`的类: ```csharp public class Post { public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } } ``` 3. 配置数据库上下文:创建一个派生自`DbContext`的类,用于配置数据库连接和实体集。例如: ```csharp public class BlogContext : DbContext { public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("your_connection_string"); } } ``` 4. 迁移数据库:使用Entity Framework Core的迁移工具来创建数据库或更新现有数据库。在NuGet包管理器控制台中运行以下命令: ``` Add-Migration InitialCreate ``` 然后运行以下命令以应用迁移: ``` Update-Database ``` 5. 进行数据库操作:您现在可以使用Entity Framework Core执行数据库操作。例如,创建一个新的`Post`实例并保存到数据库中: ```csharp using (var context = new BlogContext()) { var post = new Post { Title = "Hello World", Content = "This is my first post!" }; context.Posts.Add(post); context.SaveChanges(); } ``` 这只是一个简单的入门教程,帮助您开始使用Entity Framework Core。您可以进一步学习如何配置关系、执行查询和更新等更高级的操作。希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值