0

null 許容の parentId フィールドによって、それ自身への外部キーを持つカテゴリ テーブルがあります。Entity-Framework では、関係が作成されると、エンティティは関係フィールドなしで生成されます。つまり、Category テーブルで parentId-Id 関係を作成した私の例では、生成された Category エンティティには、int 型の Id プロパティと、Category 型の ParentCategory プロパティがあり、ParentId プロパティはありません。これにより、クエリが難しくなります。

そのため、カテゴリのサブカテゴリを選択したいときに問題があります。そのために以下の方法を使用します。

public IEnumerable<ICategory> GetSubCategories(long? categoryId)
{
    var subCategories = this.Repository.Category.Where(c => c.ParentCategory.Id == categoryId)
                .ToList().Cast<ICategory>();

    return subCategories;
}

しかし、ルートカテゴリを選択したい場合、これは機能しません。これを行う方法は何ですか?

ところで、Linq to Sql のように int 型の Id プロパティ、int 型の ParentId 、Category 型の ParentCategory プロパティでエンティティを生成する方法はあるのだろうか。

4

1 に答える 1