メタデータリレーションシップ使ってみる
カスタムメタデータの「メタデータリレーションシップ」なるものがあって、オブジェクトの選択とそのフィールドを選択することができる。
で、どう使うかというと
メタデータリレーションの定義
- まず適当にカスタムオブジェクトを作成します。

- カスタムメタデータを作成します。

- カスタムメタデータ項目を作成開始します。
まずは「メタデータリレーションシップ」を選択します。

- リレーションのタイプを「Entity Definition」を使用します。
最初の一つはこれしか選べません。

- カスタムフィールド詳細を追加します。と言ってもここでは名称だけですが…

- そのまま保存します。

これで基本設定は完了です。
この時点でレコードを作成しようとすると、接続(relation)先のオブジェクト選択ができます。

するとそのまま保存できるようになります。

フィールドの指定
今度はこのオブジェクトに関連する Metadata Relationship (項目)を指定します。
- フィールド作成を開始し、Metadata Relationship

- 今度は Field Definition で定義します

Controlling Field項目で先程作成した「Entity Definition」の項目を指定します。

- そしてそのまま保存する

そしたら、追加で入力してみましょう。
すると、TargetObject で指定したオブジェクトのフィールドが選択できるようになります。

Apex から利用する
上記を SOQL で単純に取得しようとすると*1

(TдT)ウヴォァー!!
このIDを直接URLに突っ込んでアクセスすると…該当オブジェクトの ObjectManager にリダイレクトする。
これでは Apex で使いようがないぞ…と思っていたら、いい情報を発見した。
さすが StackExchange だぜ!
ということで再チャレンジ
SELECT TargetObject__c, TargetObject__r.QualifiedApiName, TestField__c, TestField__r.QualifiedApiName FROM TestMetadata__mdt

やっはー!
*1:SalesforceInspector を利用。個人的に利用頻度が高い。