Let's try to understand how Entity Framework used these navigation properties to retrieve the data. Let's look at the same example that we saw while retrieving Employer
by using the Employee
entity. In this scenario, our Employee entity contains a navigation property, Employer
, using which we can access Employer
related to Employee
. The Employer
entity also contains a navigation property, Employees
, which will let us access the employees related to the given employer. So, if we need to access Employer
related to Employee
, it can be done as follows:
using (SampleDbEntities db = new SampleDbEntities()) { Employee employee = db.Employees.SingleOrDefault (employeeId); if (employee != null) { employer = employee.Employer; } }
What happens behind the scenes is that Entity Framework generates SQL based on our queries and retrieves the data from the tables.
Let's see what Entity Framework is doing behind the scenes to make this work:
Analyze...