我有一个包含类别和子类别的表,看起来像这样:
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; }
}
我想在CategoryItem
中创建类别的分层树:
public class CategoryItem
{
public string Name { get; set; }
public ICollection<CategoryItem> Children { get; set; }
}
这就是我尝试将其分组到漂亮树中的方式:
var result = await (from c in _context.Categories
where c.ParentId == null
select new CategoryItem
{
Name = c.Name,
Children = (from c2 in _context.Categories
where c2.ParentId == c.CategoryId
select new CategoryItem
{
Name = c2.Name
}).ToList()
}).ToListAsync();
我收到错误:
“WebShop.Models.CategoryItem”类型在两个结构中出现 单个LINQ to Entities查询中的不兼容初始化。一个 type可以在同一个查询中的两个位置初始化,但仅限于 两个地方都设置了相同的属性,这些属性是 按相同的顺序设置。
我怀疑我必须为第二个对象的Children
分配一些内容,但我尝试分配new List<CategoryItem>()
和null
,但没有结果。