具有实体框架核心的数据库结构 - 歧视

时间:2017-01-15 19:45:53

标签: asp.net-core entity-framework-core

我有以下问题:

我希望能够在我的商店里销售几种产品。

我创建了以下基础架构:

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使用率,但我没有任何结果。

0 个答案:

没有答案