C# 尝试在EF Core中使用'ThenClude'时出现异常

C# 尝试在EF Core中使用'ThenClude'时出现异常,c#,.net,entity-framework,entity-framework-core,.net-core,C#,.net,Entity Framework,Entity Framework Core,.net Core,我将实体框架核心与存储库模式结合使用,我有一个问题 我有Customer、Company和Email等类,它们将不相关的内容隐藏在这里,如下所示: public class Email { public int EmailId { get; protected set; } public string Address { get; protected set; } public string Description { get; protected set; }

我将实体框架核心与存储库模式结合使用,我有一个问题

我有
Customer
Company
Email
等类,它们将不相关的内容隐藏在这里,如下所示:

public class Email
{
    public int EmailId { get; protected set; }

    public string Address { get; protected set; }

    public string Description { get; protected set; }

    public Email(string address, string description)
    {
        if (string.isNullOrEmpty(address))
            throw new ArgumentException(nameof(address));

        if (string.isNullOrEmpty(description))
            throw new ArgumentException(nameof(description));

        this.Address = address;
        this.Description = description;
    }

    protected Email() { }
}

public class Company
{
    public int CompanyId { get; protected set; }

    public IList<Email> Emails { get; set; }
}

public class Customer
{
    public int CustomerId { get; protected set; }

    public Company Company { get; set; }
}
现在,
thenclude
piece出现了一个问题。如果我尝试使用此方法,我最终会得到一个执行选项,表示
source
为空

我检查了所有的东西,但没有发现任何错误。看来一切都写对了

整个要点是:我有实体
A
B
C
,因此
A
有一个
B
B
有许多
C
,当我检索
A
时,我需要将所有内容关联起来


我做错了什么?为什么会出现此异常?

这似乎与Github上的错误报告有关

它被报告为IOE,然后被报告为已修复,然后作为NRE返回,就像您的异常一样。这个问题说它已经被修复了,但是我不确定是哪个版本,我也不知道你现在使用的是哪个版本

(在github repo中搜索并包含问题——有很多问题。)

听起来不稳定。离它远点。通过直接指定include的完整路径,可以完全避免这个问题

muhCompaniesOrWhatevs.Include(x => x.Company.Emails);

你能不能只
.Include(x=>x.Company.Emails)
?谢谢@Will,使用这个解决方案确实有效!顺便问一下,你知道为什么
然后include
不起作用吗?如果我理解了文档,这是推荐的方法,但在这种情况下,它根本不起作用。对不起,不知道。从未使用过,不知道它是如何实现的。让我看一下,再加上一个答案。
muhCompaniesOrWhatevs.Include(x => x.Company.Emails);