Many to Many med WHERE-villkor i LINQ to SQL

Om man har bakgrund med förståelse för SQL kan saker och ting bli väldigt svårt när det kommer till LINQ. Many to Many är ett typiskt sådant fall. I en bloggpost funnen på nätet, LINQ (C#) Many to Many Query using Entity Framework, demonstreras hur man kan formulera WHERE-villkor i queryn. Betrakta figuren nedan som visar entiteterna A och B:


Entiteterna A och B och kardinaliteten däremellan

Detta ger nedanstående figur där vi ser att:

  • TabellA har relationen ONE to MANY med TabellAB <=> TabellAB har relationen MANY to ONE med TabellA
  • TabellAB har relationen MANY to ONE med TabellB <=> TabellB har relationen MANY to ONE med TabellB

Exempel:

var queryTabellB = from tB in db.TabellB.Where(b => b.XX == X1 /* Villkor i tabell B */)
                    from tAB in tB.TabellA.Where(a => a.YY == Y1 /* Villkor i tabell A */)
                    select tB;
Annonser