using System.Data.Entity;
using System.Collections.Generic;
public static void Main()
using (var context = new EntityContext())
List<Class> list = new List<Class>();
for(int i = 0; i < 10; i++)
list.Add(new Class() { Name ="Class_" + i});
List<Student> slist = new List<Student>();
for(int i = 0; i < 3; i++)
slist.Add(new Student() { Name ="Student_" + i});
context.Student.AddRange(slist);
context.Class.AddRange(list);
context.StudentClass.Add(new StudentClass() {
StudentID = slist[0].StudentID,
ClassID = list[0].ClassID,
context.StudentClass.Add(new StudentClass() {
StudentID = slist[0].StudentID,
ClassID = list[3].ClassID,
var test = context.StudentClass.Where(b => b.StudentID == 1);
var outerLeftJoin = context.Class.GroupJoin(
FiddleHelper.WriteTable(context.Class.ToList());
FiddleHelper.WriteTable(context.Student.ToList());
FiddleHelper.WriteTable(context.StudentClass.ToList());
FiddleHelper.WriteTable(outerLeftJoin);
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
public DbSet<Class> Class { get; set; }
public DbSet<Student> Student { get; set; }
public DbSet<StudentClass> StudentClass { get; set; }
public int ClassID { get; set; }
public string Name { get; set; }
public ICollection<StudentClass> StudentClass { get; set; }
public int StudentID { get; set; }
public string Name { get; set; }
public ICollection<StudentClass> StudentClass { get; set; }
public class StudentClass
public int StudentClassID { get; set; }
public int StudentID { get; set; }
public Student Student { get; set; }
public int ClassID { get; set; }
public Class Class { get; set; }