📜  ef core add OnModelCreating 外键 - C# (1)

📅  最后修改于: 2023-12-03 15:30:35.955000             🧑  作者: Mango

EF Core 添加 OnModelCreating 外键

在 Entity Framework Core 中,使用 OnModelCreating 方法可以修改数据库的映射行为。在这个方法中,我们可以指定外键的映射关系,使得数据库中的两个表格可以进行关联。

步骤

首先,我们需要创建一个实体类和一个上下文类。这里我们举例一个用户表和一个订单表:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Order> Orders { get; set; }
}

public class Order
{
    public int Id { get; set; }
    public string ProductName { get; set; }
    public User User { get; set; }
}

然后,我们需要在上下文类中添加这两个表格:

public class MyDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Order> Orders { get; set; }
}

接着,在 OnModelCreating 方法中,我们可以使用 Fluent API 来指定外键的映射关系:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>()
        .HasMany(u => u.Orders)
        .WithOne(o => o.User)
        .HasForeignKey(o => o.UserId);
}

以上代码中,我们指定了 User 表格和 Order 表格之间的关联关系。具体来说,我们告诉 Entity Framework Core:一个 User 实例可以有多个 Order 实例,而一个 Order 实例只能对应一个 User 实例。User 对应的外键为 UserId

总结

使用 OnModelCreating 方法可以帮助我们快速指定表格之间的关联关系,从而在数据库中创建外键。Fluent API 提供了丰富的选项,可以满足不同的需求。