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);