Difference between revisions of "Linking Tables in Repository"

From Logic Wiki
Jump to: navigation, search
(Created page with "== Include / ThenInclude == <pre> public Proposal GetProposal(long proposalId) { var retVal1 = _vdsContext.vds_Proposal .Include(k => k.Vd...")
 
 
Line 31: Line 31:
 
             modelBuilder.Entity<PossibleAnswer>().HasQueryFilter(p => !p.IsDeleted);
 
             modelBuilder.Entity<PossibleAnswer>().HasQueryFilter(p => !p.IsDeleted);
 
         }
 
         }
 +
</pre>
 +
=== Ignoring Query Filters ===
 +
<pre>
 +
blogs = db.Blogs
 +
    .Include(b => b.Posts)
 +
    .IgnoreQueryFilters()
 +
    .ToList();
 
</pre>
 
</pre>
  
 
--------------
 
--------------
 
See [[AutoMapper]]
 
See [[AutoMapper]]

Latest revision as of 12:04, 17 September 2019

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);
        }

Ignoring Query Filters

blogs = db.Blogs
    .Include(b => b.Posts)
    .IgnoreQueryFilters()
    .ToList();

See AutoMapper