EfCore: как разбить несколько включений на отдельные методы - PullRequest
0 голосов
/ 04 марта 2019

Я пытался разделить несколько включений на отдельные методы.Таким образом, я надеюсь, что смогу получить все дочерние элементы сущности в одном методе из любой точки в иерархии объектов.

Скажем, у меня есть это, чтобы получить авторов с книгами и страницами:

var result = Context.Authors.Include(x => x.Books).ThenInclude(x => x.Pages);

Теперь следующее, очевидно, не работает, но оно демонстрирует, какое решение я ищу:

internal static class IncluderExtension <T> where T : class
{       
    internal static IIncludableQueryable<T, List<Books>> IncludeBooks(this IIncludableQueryable<T, List<Author>> query)
    {
        var result = query.ThenInclude(x => x.Books).IncludePages();

        return result;
    }

    internal static IIncludableQueryable<T, List<Page>> IncludePages(this IIncludableQueryable<T, List<Books>> query)
    {
        var result = query.ThenInclude(x => x.Page);

        return result;
    }
}

Есть идеи о том, как достичь моей цели?

...