title: EF: db.SaveChanges() vs dbTransaction.Commit
body: <p>I am fairly new to entity framework and I have a doubt on EF's db.SaveChange. From some posts and MSDN I learned that <code>db.SaveChange</code> by default does all the changes in transaction. Also there is a way we can create a transaction of our own using <code>db.Database.BeginTransaction()</code> ,"db" being my context class object. So I have two questions: </p>
  
  <ol>
  <li>What to use &amp; when</li>
  <li>If I am inserting data to one table whose @@identity is foreign key to my next inserting table, rather than using <code>db.SaveChange()</code> to get the @@identity is there any other way (<code>db.SaveChanges()</code> is in a user defined transaction scope) and will <code>db.SaveChanges()</code> commit my changes to DB</li>
  </ol>