I know this is an old question, but if anyone else lands here using EF Code First as I am, my issue was in the fluent mappings:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Parent>()
.HasOptional(a => a.Child) /* LEFT OUTER JOIN */
.WithMany()
.HasForeignKey(a => a.ChildId);
}
is translated as a LEFT OUTER JOIN whereas
modelBuilder.Entity<Parent>()
.HasRequired(a => a.Child) /* INNER JOIN */
.WithMany()
.HasForeignKey(a => a.ChildId);
is translated as an INNER JOIN.