Usage of DbEntityCache and CachedDbEntity Class

I can’t find any document for this cache system and I have some questions.

  1. What is the main reason of using DbEntityCache and CachedDbEntity Class that implements DbEntity?

  2. How can disable or modify this feature?

  3. There is a method in CachedDbEntity that named getId(). this method returns the id of table in database. but if there is two table with same names in different schemas, this method returns two table with just one of the schemas. (default one)