You don't need to create your own class. In the majority of the cases, you will get the existing objects, and since they have associations, you get data from the other object (table) by reading the associated properties. For example, CategoryComponent.Component..Name will get the name of component from the CategoryComponent intermediate table.
For that you should simply use the ManyValuedAssociation attribute to map the other side of the association. This allows you to go from CCM_CATEGORY to CCM_CATEGORY_COMPONENT.
From TMS Data Modeler (which looks you are using), they are not created automatically, but you can enable them in specific tables in the mappings tab: