public void EntitySetDerivedFromTypeDeclaredInReferencedE2E() { // Query VehicleGPSSet TestClientContext.MergeOption = MergeOption.OverwriteChanges; var derivedVehicleGPSSet = TestClientContext.DerivedVehicleGPSSet; foreach (var derivedVehicleGPS in derivedVehicleGPSSet) { Assert.IsTrue(derivedVehicleGPS != null); } Assert.AreEqual(2, derivedVehicleGPSSet.Count()); // Create an entity in VehicleGPSSet var newVehicleGPS = new DerivedVehicleGPSType() { Key = "101", VehicleSpeed = 100.1, StartLocation = new GeoLocation() { Lat = 1, Long = 2, }, EndLocation = new GeoLocation() { Lat = 3, Long = 4, }, CurrentLocation = new GeoLocation() { Lat = 1.2, Long = 2.4, }, LostSignalAlarm = new GPSLostSignalAlarmType() { Severity = 1, LastKnownLocation = new GeoLocation() { Lat = 2.1, Long = 1.2, } }, Map = new MapType() { MBytesDownloaded = 1.2, ProviderName = "TESTNEW", Uri = "TESTNEW.TEST", }, DisplayName = "TESTTEST" }; TestClientContext.AddToDerivedVehicleGPSSet(newVehicleGPS); TestClientContext.SaveChanges(); // Get the created entity var queryable = TestClientContext.DerivedVehicleGPSSet.Where(vehicleGPS => vehicleGPS.Key == "101"); VehicleGPSType newCreated = queryable.Single(); Assert.AreEqual(100.1, newCreated.VehicleSpeed); // Update the created entity newCreated.VehicleSpeed = 200.1; TestClientContext.UpdateObject(newCreated); TestClientContext.SaveChanges(); // Query and Delete entity VehicleGPSType updated = queryable.Single(); Assert.AreEqual(200.1, newCreated.VehicleSpeed); TestClientContext.DeleteObject(updated); TestClientContext.SaveChanges(); Assert.AreEqual(2, derivedVehicleGPSSet.Count()); }