Business object base class that acts as a container for a base entity type and a DbContext instance. Subclasses of this business object should be used to implement most data related logic that deals with creating, updating, removing and querying of data use EF Code First.

The business object provides base CRUD methods like Load, NewEntity, Remove. The Save() method uses the EF specific context based SaveChanges which saves all pending changes (not just those for the current entity and its relations). As such these business objects should be used as atomically as possible and call Save() as often as possible to change pending data.