📜  ASP.NET Core-DBContext(1)

📅  最后修改于: 2023-12-03 14:59:24.184000             🧑  作者: Mango

ASP.NET Core - DBContext

ASP.NET Core - DBContext是通过基于链接字符串的配置管理Entity Framework Core(EF Core)的最常见方式。这个上下文实例允许您查询和保存到数据库。它通常是处理数据的核心类之一。

创建DBContext

您需要继承DbContext类才能创建DBContext。以下是一个使用InMemory数据库提供程序创建DBContext的示例:

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options)
        : base(options)
    {
    }

    public DbSet<Customer> Customers { get; set; }
}

其中Customer是一个简单的实体类:

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public DateTime CreatedAt { get; set; }
}

Startup.csConfigureServices方法中配置数据库:

services.AddDbContext<MyDbContext>(options =>
    options.UseInMemoryDatabase("MyDatabase"));
使用DBContext

在您的应用程序中使用DBContext时,您将需要注入DBContext。以下是一些使用示例:

public class CustomerController : Controller
{
    private readonly MyDbContext _dbContext;

    public CustomerController(MyDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    public IActionResult Index()
    {
        var customers = _dbContext.Customers.ToList();
        return View(customers);
    }

    public IActionResult Create()
    {
        var customer = new Customer
        {
            FirstName = "John",
            LastName = "Doe",
            Email = "john.doe@example.com",
            CreatedAt = DateTime.Now
        };

        _dbContext.Customers.Add(customer);
        _dbContext.SaveChanges();

        return RedirectToAction(nameof(Index));
    }
}
数据库迁移

在开始使用数据库之前,您需要创建数据库和表。使用EF Core的Migration工具可以轻松地自动执行此操作。

首先,你需要添加EF Core和EF Core工具包到你的项目中。您可以通过以下命令来实现:

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools

然后,在使用迁移之前,您需要对DBContext进行配置:

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // Configure your entities and relations here
    }
}

接下来,使用以下命令创建初始迁移:

dotnet ef migrations add InitialCreate

这会为您的DBContext创建一个包含初始模板的迁移文件。

然后,使用以下命令将迁移应用于数据库:

dotnet ef database update

这会将迁移文件中定义的表结构应用于当前数据库。

总结

通过使用ASP.NET Core - DBContext,您可以轻松地连接到数据库,进行查询和保存数据。此外,使用EF Core的Migration工具,数据库的创建和维护变得非常容易。