pattern for validating an object against some condition
You have two things to consider here:  


the entity shouldn't know anything about any database or repository. I would suggest you rename your method to IsValid(). 
the entity will be manipulated or operated upon by other classes, i.e. view models or controllers, etc. It can be an anti-pattern (or just smelly) to include business rules in the entity when those business rules rightfully belong elsewhere


So, I would suggest that the validation within your object simply evaluates the property values in an immediate way, avoiding any business rules.