public Shipment ReserveShipment(Guid id) { var shipment = Shipments.Include(s => s.Driver).Where(s => s.ShipmentID == id).First(); //Check to make sure it is not already reserved if (shipment.Driver != null) { throw new InvalidOperationException("This shipment is already reserved"); } var driver = Drivers.First(d => d.DriverID == this.driverID); shipment.Driver = driver; SaveChanges(); return(shipment); }