親である同じテーブルを順番に参照するエンティティがあります。以下は、それをよりよく説明する表です。
| ID | Source_ID |
+----+----------+
| 1 | null |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 4 |
ここで、ID = 5 になったときに、ID = 1 であるその最終的な親をフェッチする必要があります。
以下のような関数を書いてみました。
<entity> ultimateparententity;
internal <entity> FetchParentComponentRecursive(<entity> entity)
{
if (component.ParentEntity!= null)
{
FetchParentComponentRecursive(entity.ParentEntity);
}
else
{
ultimateparententity = entity;
return component;
}
return entity;
}
クラスレベルで宣言された変数を使用して、最終的な親を認識しています。後で使用されることのない変数「エンティティ」を返していますが、究極の親エンティティが使用されています。このアプローチは機能しますが、私はこれにあまり満足していません。どんな指示も役に立ちます。