class Event{
int? EventID{get;set;}
int? FirstParticipantID{get;set;}
Participant FirstParticipant{get;set;}
int? SecondParticipantID{get;set;}
Participant SecondParticipant{get;set;}
int? CreatedByID{get;set;}
User CreatedBy{get;set;}
}
class Participant{
int? ParticipantID{get;set;}
List<Event> Events{get;set;}
int? CreatedByID{get;set;}
User CreatedBy{get;set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder){
modelBuilder.Entity<Event>().HasRequired(m => m.FirstParticipant).WithMany(m => m.Events).HasForeignKey(m => m.FirstParticipantID);
modelBuilder.Entity<Event>().HasRequired(m => m.SecondParticipant).WithMany(m => m.Events).HasForeignKey(m => m.SecondParticipantID);
modelBuilder.Entity<Event>().HasRequired(m => m.CreatedBy);
modelBuilder.Entity<Participant>().HasRequired(m => m.CreatedBy);
}
私には非常に明確に思えますが、hasmanny/hasrequired に対してどのような動きをしても、EF (および sql) は不平を言い続けます。実装しようとしているものの名前がわからないため、Google ヘルプを見つけることさえできません (ダブル 1 対 1 ???!!!)
イベントには null でない 2 人の参加者 (1 番目と 2 番目のみ、多くはない) が必要であり、各参加者は多くのイベントを持つことができるという考え方です。
ありがとう