それ自体にリレーションを持つカテゴリ テーブルがあります。つまり、ツリー階層ビューです。たとえば、oldfather_category -> Father_category -> child_category です。
したがって、このテーブルにツリー ビューを作成する必要があります。そこからすべての行が必要です。最初に私はこれを行います:
IEnumerable<Category> list = _service.Get().Where(c => c.ParentID == null);
Node(list);
次のように再帰を使用すると:
private void Node(IEnumerable<Category> list)
{
foreach (Category c in list)
{
//if has childs
if (c.Category1.Count > 0)
Node(c.Category1);
}
}
c.Category1.Countプロパティ (Deferred Execution マジック)を呼び出すたびに、エンティティ フレームワーク ビルドが選択されます。しかし、最初のステートメントですべてのエンティティをロードしたいので、SQL Server だけを選択したいのです。どうやってやるの?質問が明確であることを願っています)
編集: ToList() を使用すると、Category1 プロパティは何でも null になります