I had been using Ladislav Mrnka's answer to successfully retrieve Ids when using the Entity Framework however I am posting here because I had been miss-using it (i.e. using it where it wasn't required) and thought I would post my findings here in-case people are looking to "solve" the problem I had.
Consider an Order object that has foreign key relationship with Customer. When I added a new customer and a new order at the same time I was doing something like this;
var customer = new Customer(); //no Id yet;
var order = new Order(); //requires Customer.Id to link it to customer;
context.Customers.Add(customer);
context.SaveChanges();//this generates the Id for customer
order.CustomerId = customer.Id;//finally I can set the Id
However in my case this was not required because I had a foreign key relationship between customer.Id and order.CustomerId
All I had to do was this;
var customer = new Customer(); //no Id yet;
var order = new Order{Customer = customer};
context.Orders.Add(order);
context.SaveChanges();//adds customer.Id to customer and the correct CustomerId to order
Now when I save the changes the id that is generated for customer is also added to order. I've no need for the additional steps
I'm aware this doesn't answer the original question but thought it might help developers who are new to EF from over-using the top-voted answer for something that may not be required.
This also means that updates complete in a single transaction, potentially avoiding orphin data (either all updates complete, or none do).