我刚刚使用 ASP、Net Core 5 和 EF Core 5 创建了一个应用程序。它需要两个实体 - Bill 和 User 之间的多对多关系。这样一个用户可以有很多账单,一个账单可以适用于很多用户。
User{
public string Id{get; set;}
public ICollection<Bill> Bills {get; set;}
}
Bill{
public int Id{get; set;}
public ICollection<User> Users {get; set;}
}
使用 EF Core 5,我了解到我应该能够忽略 UserBill 的连接表,其中包含两个实体的 ID 和每个其他实体的导航属性。但是,我希望确保给定用户不会发生两次账单。
UserBill{
public string UserId{get; set;}
public User Payer{get; set;}
public int BillId{get; set;}
public Bill Bill {get; set;}
}
所以我想修改连接表如下:
向连接表添加唯一约束,但由于连接表是由 EF Core 自动生成的,我正在寻找一种方法将此唯一约束添加到连接表
向连接表添加其他属性。例如,我需要在连接表中添加 PaymentStatus 以指示是否已支付帐单以及其他必要的属性
UserBill{
public int Id {get; set;}
public string UserId{get; set;}
public User Payer{get; set;}
public int BillId{get; set;}
public Bill Bill {get; set;}
public PaymentStatus Status {get; set;}
}
这里我现在需要添加唯一约束以确保不能多次出现
<块引用>用户 ID、账单 ID
我们将不胜感激。谢谢。