title: Entity Framework, query dbset including context changes without to call save changes
body: <p>I am wondering how to get this kind of behavior that I will explain with EF6.</p>
  
  <p>Imagine that I have my <code>DbContext</code> and I am performing operations on it, querying, removing, and adding records on the related DbSets.</p>
  
  <p>Imagine that I have the Person DbSet that from DB initially has 3 records</p>
  
  <p>And I do this:</p>
  
  <pre><code>using (var pc = new PersonContext())
  {
     pc.Persons.Add(new Person("Mario","Rossi"));//add 1 record
     var pcount=pc.Persons.Count();//still 3 recors and not 4 as expected
     //Complex opertions...
     pc.SaveChanges();
  }
  </code></pre>
  
  <p>I would like to use DbSets with the DbContext updates (removed, added, modifies) records without having to call the <code>SaveChanges</code> method everytime.</p>
  
  <p>Imagine that before the final <code>SaveChanges</code> I can perform plenty of complex operations.</p>
  
  <p>It's not just about the transaction because I know I can obtain something like this:</p>
  
  <pre><code>using (var pc = new PersonContext())
  {
      pc.Database.BeginTransaction();
      pc.Persons.Add(new Person("Mario","Rossi"));//add 1 record
      pc.SaveChanges();
      var pcount=pc.Persons.Count();//4 as expected
      //Complex opertions
      pc.Database.CurrentTransaction.Commit();
  }
  </code></pre>
  
  <p>Is there any way to obtain this without having to write plenty of code considering tracking changes?</p>