DatabaseServices.Entity is the base class for all database objects having a graphical representation.
Geometry.Entity2d is an abstract base class for all point set classes. Any class that is derived from this class represents a set of points in 2D space. These have not a graphical representation and are used for geometry calculations.
I think the best comparison is DatabaseServices.Entity and Geometry.Entity3d.
Both Entity and Entity3d are abstract classes. Entity has derived classes such as Line, Circle, Hatch..., Entity3d has derived classes such as Curve3d, Line3d...
Entity is inherited from DBObject so it has ObjectId to store on DWG database for graphical presentation.
Entity3d is more lightweight, but its derived classes have all geometry calculations that Entity and its derived classes don't have.
For example, if we want to find projected/apparent intersection points between a line and an ellipse, we don't use Line and Circle entities (derived from Entity) and write our own math calculation. Instead, we will use Line3d and EllipticalArc3d objects (derived from Entity3d) and use method EllipticallArc3d.ProjectedIntersectWith() to make the life easier.
In short, if we want to store entities on DWG database, use Entity's derived classes. If we just want to do some advanced geometry calculations, use Entity3d's derived classes to make use of all built-in math functions.
-Khoa