インクルードパス式は、type.in の先行読み込みで定義されたナビゲーションプロパティを参照する必要があります。質問する

インクルードパス式は、type.in の先行読み込みで定義されたナビゲーションプロパティを参照する必要があります。質問する

私は次のように匿名型を含めようとします:incomelistに加えてすべての属性が必要ですCompanyTitlePeriodTypeName)

 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 へのデータ ソースになります。

ベストアンサー1

使用できません含むこのようにデータを選択します。含む関連データを読み込むために使用されます。エンティティを読み込むには、含む次に、必要なものを選択します。.ToString()から会社IDEF がそれを実行します。クエリは次のようになります。

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

おすすめ記事