所以我有以下型号
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Appointment
{
public int Id { get; set; }
public string Name{ get; set; }
}
我希望将它们分配给另一个具有单独主键的表,如下所示
public class UserAppointment
{
public int Id { get; set; }
public int UserId { get; set; }
public int AppointmentId { get; set; }
public virtual Appointment Appointment {get;set;}
public virtual User User {get;set;}
}
我想要的是 Id 是一个键(唯一、自动生成等),同时将强制 UserId 和 AppointmentId 也具有唯一的组合。
eg
this is what i want
Id UserId AppointmentId
1 1 2
2 1 3
and not this
Id UserId AppointmentId
1 1 2
2 1 2
3 1 2
目前我在我的上下文中做了一些模型构建器语句来配置我的键
modelbuilder.Entity<UserApointment>()
.HasRequired(e => e.User)
.HasMany(u => u.Appointment)
.HasForeignKey(e => e.UserId);
modelbuilder.Entity<UserApointment>()
.HasRequired(e => e.Appointment)
.HasMany(u => u.Users)
.HasForeignKey(e => e.AppointmentId);
但它仍然可以让我插入具有相似用户和约会 ID 的记录。
非常感谢任何有关如何处理此问题的建议!谢谢!!