Include路径表达式必须引用在type.in eager loading上定义的导航属性

我尝试包括这样的匿名类型:我想要除incomelistPeriodTypeName之外的所有incomelist属性)

  var incomeList = ctx.IncomeLists.Include(i => new { CompanyTitle = i.CompanyId.ToString() + "/" + i.Company.CompanyName, PeriodTypeName = i.ListPeriods.Select(lp => lp.PeriodType.PeriodTypeName) }).ToList() 

我的模型部分是这样的: 在此处输入图像描述

但我得到以下例外:

Include路径表达式必须引用在类型上定义的导航属性。 使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。 参数名称:路径

结果应该是Gridview的数据源。

您不能使用Include来选择这样的数据。 Include用于加载相关数据。 您应该使用Include加载实体,然后选择所需的实体。 记得从CompanyId中删除.ToString() 。 EF会为你做。 您的查询应如下所示:

 var incomeList = ctx.IncomeLists .Include(i => i.Company) .Include(i => i.ListPeriods.Select(lp => lp.PeriodType)) .Select(i => new { CompanyTitle = i.CompanyId + "/" + i.Company.CompanyName, PeriodTypeNames = i.ListPeriods.Select(lp => lp.PeriodType.PeriodTypeName) }) .ToList();