부모 카테고리를 검색하고자하는 자체 참조 Category
클래스가 있고 적어도 하나 이상의 하위 카테고리가 있고 적어도 하나 이상의 자식이 있다면 활동 (ICollection<Activity>
)을 컬렉션에 추가하십시오.컬렉션이있는 자식의 부모/자식을 검색 한 Linq 질의
최소한 1 개 이상의 활동이있는 하위 카테고리가있는 경우에만 반환해야하므로 어린이의 어린이에게도 해당됩니다.
하나 이상의 활동이있는 하위 카테고리가없는 경우 Category
은 이 아니고이 반환되어야합니다.
쿼리는 부모 Category
을 CategoryId
이 아닌 실제 Category
개체로 반환해야합니다. 가능한가요?
public class Category
{
public int CategoryId { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public virtual Category Parent { get; set; }
public virtual ICollection<Category> Children { get; set; }
public virtual ICollection<Activity> Activities { get; set; }
}
UPDATE 1
부분적으로 작동하는 쿼리
var categories = _db.Categories
.Where(x => x.Parent != null && x.Activities.Count > 0)
.GroupBy(x => x.ParentId)
.Select(g => new { Parent = g.Key, Children = g.ToList() }).ToList();
시도한 쿼리는 어디에 있습니까? – Mivaweb
'ParentId'를 저장하는 특별한 이유가 있습니까? 'Parent.CategoryId'에서 이걸 얻을 수 없을까요? –
@RufusL 이것은 EF에서 전형적인 것이므로 참조 된 엔티티를 실제로 제거하지 않고 행을 하나의 엔티티로 가져올 수 있습니다. 부모 객체에는 연결되지 않지만 부모 객체에는 연결되지 않는 ID를 얻습니다. – juharr