我有以下问题:
我希望能够在我的商店里销售几种产品。
我创建了以下基础架构:
public class Product
{
public int Id {get; set;}
public string Name {get; set;}
...
public int? ParentId {get; set;}
public Product Parent {get; set;}
public ICollection<Product> Children {get; set;}
}
public class AudioFile : Product
{
public string SomeValue {get; set;}
}
public class DocummentFile : Product
{
public string SomeString {get; set;}
}
在流畅的映射中,我使用的是鉴别器。
因此,要选择没有父级的文档文件数量,我会这样做:
DbContext.DocummentFiles.Count(x=> !x.ParentId.HasValue)
它也适用于音频文件。
我想为SomeValue
的某个音频文件选择所有孩子的示例词典:
DbContext.AudioFiles
.Where(x => x.ParentId == 222)
.Select(x => x.Children
.OfType<AudioFile>()
.ToDictionary(t => t.Name, t => t.SomeValue));
不幸的是,它不起作用。我很长时间都有很高的CPU使用率,但我没有任何结果。