私は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 でいくつかの解決策が見られますが、私の意見では、それは良くありません。