public class ApplicationUser
public string Id { get; set; }
public string Name { get; set; }
public ICollection<Gig> Gigs { get; set; }
public ICollection<Attendance> Attendances { get; set; }
public byte Id { get; set; }
public string Name { get; set; }
public int Id { get; set; }
public ApplicationUser Artist { get; set; }
public string ArtistId { get; set; }
public DateTime DateTime { get; set; }
public string Venue { get; set; }
public Genre Genre { get; set; }
public byte GenreId { get; set; }
public ICollection<Attendance> Attendances { get; set; }
public int GigId { get; set; }
public string AttendeeId { get; set; }
public Gig Gig { get; set; }
public ApplicationUser Attendee { get; set; }
public class MyDbContext : DbContext
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
public DbSet<Genre> Genres { get; set; }
public DbSet<Gig> Gigs { get; set; }
public DbSet<Attendance> Attendances { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EF7Test.MyDbContext;Trusted_Connection=True;");
protected override void OnModelCreating(ModelBuilder modelBuilder)
modelBuilder.Entity<Attendance>().HasKey(e => new { e.GigId, e.AttendeeId });
modelBuilder.Entity<Attendance>().HasOne(e => e.Attendee).WithMany(e => e.Attendances).HasForeignKey(e => e.AttendeeId).OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<Attendance>().HasOne(e => e.Gig).WithMany(e => e.Attendances).HasForeignKey(e => e.GigId);
modelBuilder.Entity<Gig>().HasOne(e => e.Artist).WithMany(e => e.Gigs).HasForeignKey(e => e.ArtistId);
base.OnModelCreating(modelBuilder);