The Include path expression must refer to a navigation property defined on the type.in eager loading The Include path expression must refer to a navigation property defined on the type.in eager loading asp.net asp.net

The Include path expression must refer to a navigation property defined on the type.in eager loading


You cannot use Include to select data like this. Include is used to load related data. You should load your entities using Include then select what you want. Remember to remove .ToString() from CompanyId. EF will do it for you. Your query should look like this:

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