我尝试包含这样的匿名类型:
除了incomelist
,CompanyTitle
)
PeriodTypeName
个属性
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的数据源。
答案 0 :(得分:20)
您无法使用包含来选择此类数据。 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();