IEntity supports different key types