📅  最后修改于: 2023-12-03 15:30:35.955000             🧑  作者: Mango
在 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 提供了丰富的选项,可以满足不同的需求。