To elaborate more on this:
An entity can have fields mapped to more tha one database table, as in the case of inheritance, that's why the Field or FieldPersistenceInfo is the structure/class holding the mapped table name.
I have a question related to this thread. I have entity that is a subtype. How can I retrieve source table name at run time? GetFieldPersistenceInfos() returns empty array.
I see generated code calling this.AddElementMapping() on the entity that is a subtype, I just don't know how to get to the table name. I'm using version 3.1.