私はこのような匿名型を含めようとします: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()
しかし、私は次の例外が発生します:
インクルードパス式は、タイプで定義されたナビゲーションプロパティを参照する必要があります。参照ナビゲーションプロパティには点線のパスを使用し、コレクションナビゲーションプロパティには選択演算子を使用します。パラメーター名:パス
結果はGridviewのデータソースになります。
Includeを使用してこのようなデータを選択することはできません。 Includeは、関連データをロードするために使用されます。 Includeを使用してエンティティをロードし、必要なものを選択する必要があります。 。ToString()をCompanyIdから削除することを忘れないでください。 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();