У меня есть метод расширения, который позволяет вам в целом включать данные в EF:
public static IQueryable<T> IncludeMultiple<T>(this IQueryable<T> query, params Expression<Func<T, object>>[] includes)
where T : class
{
if (includes != null)
{
query = includes.Aggregate(query, (current, include) => current.Include(include));
}
return query;
}
Это позволяет мне иметь методы в моем репозитории следующим образом:
public Patient GetById(int id, params Expression<Func<Patient, object>>[] includes)
{
return context.Patients
.IncludeMultiple(includes)
.FirstOrDefault(x => x.PatientId == id);
}
Я считаю, что метод расширения работал до EF Core, но теперь, включая "children", выполняется следующим образом:
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author);
Есть ли способ изменить мой общий метод расширения для поддержки новой практики EF Core ThenInclude()
?