efcore中如何关联外键
时间: 2024-03-23 16:43:02 浏览: 10
在 EF Core 中,可以通过导航属性来关联外键。假设我们有两个实体类 `Order` 和 `Customer`,其中 `Order` 包含一个外键 `CustomerId`,表示该订单所属的客户,那么可以在 `Order` 类中添加一个 `Customer` 导航属性来表示与客户实体的关系:
```csharp
public class Order
{
public int Id { get; set; }
public int CustomerId { get; set; }
public Customer Customer { get; set; }
}
```
在上面的代码中,`CustomerId` 属性表示外键,`Customer` 属性表示与客户实体的导航属性。
如果需要手动配置外键关系,可以使用 Fluent API。例如,我们可以使用以下代码将 `Order` 实体的 `CustomerId` 属性配置为指向 `Customer` 实体的主键:
```csharp
modelBuilder.Entity<Order>()
.HasOne(o => o.Customer)
.WithMany()
.HasForeignKey(o => o.CustomerId);
```
在上面的代码中,`HasOne()` 方法表示 `Order` 实体与 `Customer` 实体的关系为一对一或一对多,`WithMany()` 方法表示 `Customer` 实体与 `Order` 实体的关系为多对一或多对多,`HasForeignKey()` 方法指定外键属性为 `CustomerId`。