だから私は次のモデルを持っています
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ステートメントを実行しました
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と予定IDを持つレコードを挿入することはできます。
これに対処する方法についてのアドバイスは大歓迎です!ありがとう!!