EF7, как передать свойство для включения методом ThenInclude

Я реализовал репозиторий и шаблон UnitOfWork в моем приложении ASP.NET5. Я хотел бы передать вещи, которые я хочу включить в запрос.

 public virtual IEnumerable<TEntity> Get(params Expression<Func<TEntity, object>>[] includes)
    {
        var query = Context.Set<TEntity>().AsQueryable();
        return Include(query, includes);
    }

Включить метод

 private IQueryable<TEntity> Include(IQueryable<TEntity> query, params Expression<Func<TEntity, object>>[] includes)
    {
        if (includes != null)
        {
            foreach (var i in includes)
            {
               query = query.Include(i);
            }
        }
        return query;
    }

Позвоните через UnitOfWork

//PREDICATE BUILDER CREATE METHOD JUST CREATES EXPRESSION
var comments = PredicateBuilder.Create<DAL.Report, object>(x => x.Comments);

//THIS DOESNT WORK ANYMORE
var commentsCreator = PredicateBuilder.Create<DAL.Report, object>(x => x.Comments.Select(y => y.Creator)); 


var dalReports = unitOfWork.Reports.Get(comments, commentsCreator);

Начиная с Entity Framework 7, существует метод ThenInclude(), который включает свойства включенного свойства.

И это принимает выражение в качестве параметра

Expression<Func<object, TProperty>> navigationPropertyPath

Изменить: Кто-нибудь знает что-нибудь или была такая же проблема?

0 ответов

Другие вопросы по тегам