static void Main(string[] args) { //create mapper instance EmployeeMapper em = new EmployeeMapper(); // Get the same employee twice Employee emp1 = em.GetById(1); Employee emp2 = em.GetById(1); // check that the same object is returned by each call bool sameobject1 = emp1.Equals(emp2); // Get all hourly paid employees List<Employee> hpes = em.GetAllHourlyPaid(); // Check that objects are not duplicated (may need to change these to match your data) // first hpe has empl1 as supervisor bool sameobject2 = emp1.Equals(hpes[0].Supervisor); // S/B TRUE // second hpe has first hpe as supervisor NO DATA Has not been retrieved for this supervisor, although it's in the identity Map. bool sameobject3 = hpes[0].Equals(hpes[1].Supervisor); // S/B FALSE // Get the supervisor for hpes[1], should have Id of 3 Employee emp3 = em.GetById(3); bool sameobject4 = emp3.Equals(hpes[1].Supervisor); // S/B TRUE // Create a new hourly paid employee HourlyPaidEmployee newhpe = new HourlyPaidEmployee(); Address newaddress = new Address("Entity Park", 100, new PostCode("KA1 1BX")); newhpe.Address = newaddress; newhpe.Name = "Michael"; newhpe.Username = "******"; newhpe.PhoneNumber = "2222"; newhpe.Supervisor = emp1; // store and retrieve - object from database should have ID set int newID = em.StoreHourlyPaid(newhpe); Employee newEmp = em.GetById(newID); // set break point here and inspect objects with debugger Console.ReadLine(); }