Я наткнулся на фрагмент кода, который выглядит очень повторяющимся. К сожалению, я не очень знаком с ядром LINQ и EF, поэтому мне любопытно, является ли это правильным способом получения данных. Вот код Это было на самом деле намного дольше. Я удалил некоторые повторяющиеся строки для краткости
var result = base.RepositoryContext.Applicant
.Include(c => c.ApplicantEmail)
.Include(c => c.ApplicantStatus)
.Include(c => c.Profile)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(cp => cp.Type)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(cp => cp.Status)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(cp => cp.AssesmentProgramVerification).ThenInclude(cpv => cpv.Verification)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(cp => cp.CertRecommendation).ThenInclude(cr => cr.Recommendation)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(cp => cp.StatementAssessment).ThenInclude(oa => oa.Coach)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(c => c.StatementAssessment).ThenInclude(a => a.Statement)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(c => c.StatementAssessment).ThenInclude(o => o.Method)
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(c => c.StatementAssessment).ThenInclude(a => a.Status)
.Where(...).ToListAsync();
Так, например, после того, как он говорит
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(c => c.StatementAssessment).ThenInclude(o => o.Method)
, он повторяется
.Include(c => c.Profile).ThenInclude(p => p.AssesmentProgram).ThenInclude(c => c.StatementAssessment).ThenInclude(a => a.Status)
Нам действительно нужно go через длинную цепочку .ThenInclude (s), чтобы включить другую таблицу?