1

次のようなドキュメントを保存した場合:

Category {
    public string Id {get;set;}
    public List<Category> Categories {get;set;}
    ...
}

基本的に、サブカテゴリを持つカテゴリ。私の場合、深さは2レベルのみです(1つの親、nのサブカテゴリ)。

すべてのカテゴリのクエリはうまく機能し、適切なリストが表示されます(ネストされたサブカテゴリリストも含まれます)。私のユーザーは、サブカテゴリをクリックするだけで、選択したカテゴリ内のものを表示できます。サブカテゴリの1つをとして引き出したいCategory

サブカテゴリIDが与えられた場合、それ自体がスタンドアロンであるため、サブカテゴリの1つをどのように引き出すことができCategoryますか?

アップデート

私は追加したいと思います、私はこれを行うことによってこれを回避しています:

        Category pCat = RavenSession.Query<Category>().Where(x => x.Categories.Any(c => c.Id == id)).FirstOrDefault();
        Category cat = pCat.Categories.Where(x => x.Id == id).FirstOrDefault();

これは、最初にサブカテゴリを含むカテゴリを取得し、次にそのカテゴリのサブカテゴリをクエリして特定のサブカテゴリをプルします。

おそらくこれの方が良いのかもしれませんが、わかりません...しかし、1つで十分な場合は2つのステップを実行しているようです。

アップデート2

これらのカテゴリのすべてのIDは手動で追加され、RavenDBの自動IDは追加されません(サブカテゴリにもIDがあります)。

4

1 に答える 1