When I pass UserID in parameterized constructor it should populate the User Entity
Looks like turning to Entity Framework also requires a paradigm shift. You were used to Active Record or similar. When you work with EF an important notion is that entities (i.e. classes like User) are persistence ignorant.
The context is responsible for materializing entity objects from the database, tracking their changes and saving changes. The entities themselves are not involved in this.
So in your case you'd no longer get a User by
var user = new User(1);
but by
using(var context = new MyContext())
{
var user = context.Users.Find(1);
// in ObjectContext: context.Users.Single(u => u.UserId == 1)
}
It looks more elaborate this way, but now the User is a simple POCO (if you work code first). There's nothing inside of it that the legacy DAL must have had.