1

私はEntity Frameworkからこのエンティティを持っています:Parent、Child、GrandChild、および同等のエンティティParentModelとChildModelです。

簡略化:

class ParentModel
{
    public IList<ChildModel> Children { get; set; }
}

class ChildModel
{
    public string GrandChild { get; set; }
}

親拡張機能には、「ToModel」メソッドがあります

public static IEnumerable<ProductCategoryModel> ToModel(
    this IQueryable<ProductCategory> query)
{
    IList<ParentModel> model = 
       query.Select(p => new ParentModel { 
                            Childs = p.Childs.Select(ch => new ChildModel { 
                                                 Grandchild = ch.Grandchild.Code
                                              }).ToList() 
                    }).ToList();

    return model;
}

問題は、それが機能しないことです。理由はわかっています - ネストされた ToList() メソッドは DB 側で実行できません。

問題なく動作する正しい同等のコードを書く簡単な解決策はありますか? foreach でいくつかの解決策が見られますが、私の意見では、それは良くありません。

4

1 に答える 1