Linking Tables in Repository

From Logic Wiki
Revision as of 12:03, 17 September 2019 by AliIybar (Talk | contribs) (Created page with "== Include / ThenInclude == <pre> public Proposal GetProposal(long proposalId) { var retVal1 = _vdsContext.vds_Proposal .Include(k => k.Vd...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Include / ThenInclude

 public Proposal GetProposal(long proposalId)
        {
            var retVal1 = _vdsContext.vds_Proposal
                .Include(k => k.VdsProposalSection)
                .ThenInclude(k => k.Section)
                .Include(k => k.VdsProposalSection)
                .ThenInclude(k => k.ProposalQuestion)
                .ThenInclude(k => k.Question)
                .ThenInclude(k => k.QuestionType)
                .Include(k => k.VdsProposalSection)
                .ThenInclude(k => k.ProposalQuestion)
                .ThenInclude(k => k.ProposalQuestionAnswer)
                .ThenInclude(k => k.PossibleAnswer)
                .Where(t => t.ProposalId == proposalId && t.IsDeleted == false);
                
            return retVal1.FirstOrDefault();
        }

Eliminating Soft Deletes

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Proposal>().HasQueryFilter(p => !p.IsDeleted);
            modelBuilder.Entity<ProposalQuestion>().HasQueryFilter(p => !p.IsDeleted);
            modelBuilder.Entity<ProposalQuestionAnswer>().HasQueryFilter(p => !p.IsDeleted);

            modelBuilder.Entity<Question>().HasQueryFilter(p => !p.IsDeleted);
            modelBuilder.Entity<QuestionType>().HasQueryFilter(p => !p.IsDeleted);
            modelBuilder.Entity<PossibleAnswer>().HasQueryFilter(p => !p.IsDeleted);
        }

See AutoMapper