using System.Data.Entity;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
public static void Main()
using (var context = new BookStore())
BookCategory bc1 = new BookCategory()
BookCategory bc2 = new BookCategory()
BookCategory bc3 = new BookCategory()
BookCategory bc4 = new BookCategory()
BookCategories = new List<BookCategory>()
BookCategories = new List<BookCategory>()
Category category1 = new Category()
CategoryName = "category 1",
BookCategories = new List<BookCategory>()
Category category2= new Category()
CategoryName = "category 2",
BookCategories = new List<BookCategory>()
context.Books.Add(book1);
context.Books.Add(book2);
context.Categories.Add(category1);
context.Categories.Add(category2);
var categories = context.Categories.ToList();
var books = context.Books.ToList();
var bookCategories = context.BookCategories.ToList();
FiddleHelper.WriteTable(books);
FiddleHelper.WriteTable(categories);
FiddleHelper.WriteTable(bookCategories);
public class BookStore : DbContext
public BookStore() : base(FiddleHelper.GetConnectionStringSqlServer())
protected override void OnModelCreating(DbModelBuilder modelBuilder)
public DbSet<Category> Categories { get; set; }
public DbSet<Book> Books { get; set; }
public DbSet<BookCategory> BookCategories { get; set; }
public int BookId { get; set; }
public string Title { get; set; }
public virtual ICollection<BookCategory> BookCategories { get; set; }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<BookCategory> BookCategories { get; set; }
public class BookCategory
public int BookId { get; set; }
public int CategoryId { get; set; }
public Book Book { get; set; }
public Category Category { get; set; }