Metadata is an important concept to understand when thinking about MemberJunction. Metadata is used in a lot of different software architectures in order to describe how a system might operate. In the case of MemberJunction, the Metadata layer is a critical part of driving the functionality of the framework as well as providing an abstraction layer to reduce direct coupling between applications and a specific data implementation.

Metadata also enables a great degree of automation through CodeGen since Metadata provides a rich descriptive language about the configuration of the framework which in turn allows for CodeGen to greatly reduce manual effort through its automated processes.

Entities

The core types of metadata in MemberJunction are related to managing Entities. The Entity metadata in MemberJunction contains information about all of the entities, or tables, in the system. Not all tables in a database are necessarily entities, that is determined by the way you configure the config.json file in your CodeGen project. Entity metadata includes basic concepts such as text descriptions of each table and column as well as additional structured information that goes beyond the level of information you would normally find in a database catalog within a DBMS like SQL Server or others.