protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Project>()
.HasRequired(x => x.Creator) //or HasOptional
.WithMany() //Unidirectional
.HasForeignKey(x => x.CreatorId) //FK column Name
.WillCascadeOnDelete(false);
modelBuilder.Entity<Invitation>()
.HasRequired(e => e.Sender)
.WithMany()
.HasForeignKey(e => e.SenderId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Invitation>()
.HasRequired(e => e.Receiver)
.WithMany()
.HasForeignKey(e => e.ReceiverId)
.WillCascadeOnDelete(false);
/* modelBuilder.Entity<Project>().HasKey(it => it.Id);
modelBuilder.Entity<Project>().HasMany(it => it.Users).WithMany(it => it.Projects);
modelBuilder.Entity<Project>().HasRequired(it => it.Creator).WithMany(it => it.CreatedProjects).
HasForeignKey(it => it.CreatorId).WillCascadeOnDelete(false);
*/
modelBuilder.Entity<User>().HasMany(x => x.UserProjects).WithMany(x => x.ProjectUsers);
}
}