C# Include path表达式必须引用在类型中定义的导航属性
我尝试包括以下匿名类型: 除了C# Include path表达式必须引用在类型中定义的导航属性,c#,asp.net,entity-framework,linq,entity-framework-6,C#,Asp.net,Entity Framework,Linq,Entity Framework 6,我尝试包括以下匿名类型: 除了CompanyTitle,PeriodTypeName)之外,我还需要所有incomelist属性 我的模型部分如下所示: 但我有以下例外: 包含路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的选择运算符 财产。参数名称:路径 结果应该是Gridview的数据源。您不能使用Include来选择这样的数据。Include用于加载相关数据。您应该使用Include加载实体,然后选择所需内容。记住从CompanyId中删除.ToSt
CompanyTitle
,PeriodTypeName
)之外,我还需要所有incomelist
属性
我的模型部分如下所示: 但我有以下例外: 包含路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的选择运算符 财产。参数名称:路径 结果应该是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();
选中此复选框,则不能包含对象。实际上,您必须包含导航属性。如果要包含两个属性,请使用include()。include()。
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();