Having an entity directly contact the database is a violation of separation of concerns - it means that the class is doing, in addition to its own job, some database work, which is not its concern.
Have a factory/builder instead.
A common way to hidrate entities from the database these day is through an ORM - such a library mediates between the database and your object model and deals with all database interactions on your behalf. Examples of ORMs are Entity Framework, nHibernate, Dapper and more.