[C#] linq to sql + n:m Beziehungen?

Jantz

Erfahrenes Mitglied
Hallo!

Ich bastel gerade etwas mit dem ASP.NET MVC Framework rum und versuche mich gerade in C# (und auch linq).

Mir bereiten jedoch n:m Beziehungen gerade Probleme.

Einfaches Beispiel:

Ich habe 2 Tabellen: Beitraege und Kategorien.

-> 1 Beitrag hat 0..* Kategorien
-> 1 Kategorie hat 0..* Beitraege

=> Also eine n:m Beziehung.

Daraus resultierend brauch ich weitere tabelle, ich nenne sie einfach mal "nmBeitraegeKategorien"

Soweit so gut.

Nun habe ich in meinem BeitraegeRepository eine <IQuerable> Methode, die mir alle Beitraege ausgibt und logisch, ich will natürlich auch die zugehörigen Kategorien zum Beitrag erfassen.


Dazu muss ich sagen, dass ich die Tabellen in Linq immer in den Singular umbenne, mit einer 1:n beziehung war es garkein Problem.
Code:
        public IQueryable<Beitrag> isActivFindAllBeitraege()
        {
            return from Beitrag in db.Beitrag
                   join Autoren in db.Autoren on Beitrag.fk_autor equals Autoren.id
                   where Beitrag.aktiv == true
                   select Beitrag;
        }

Ist dies mit einer Join Beziehung überhaupt möglich oder muss ich eine Extraabfrage erstellen oder eine geschachtelte.

Kurz um ich steh gerade auf dem Schlauch :)

Wäre nett wenn mir jmd einen Tip geben könnte.

Vielen Dank!

MfG
JanTz
 
Nicht so schüchtern sein! ;)

Hab mir mal eine Art "Notlösung" erstellt.

Hier die Linq Abfrage in BeitragRepository
Code:
        public IQueryable<Beitrag> isActivFindAllBeitraege()
        {
            return from Beitrag in db.Beitrag
                   join Autoren in db.Autoren on Beitrag.fk_autor equals Autoren.id
                   join Beitrag_Kategorie in db.Beitrag_Kategorie on Beitrag.id equals Beitrag_Kategorie.fk_beitrag
                   join Kategorie in db.Kategorie on Beitrag_Kategorie.fk_kategorie equals Kategorie.id
                   where Beitrag.aktiv == true
                   select Beitrag;
        }

In der View ist es dann möglich über das Beitrag_Kategorie Objekt (hab ich ja zu Beitrag gejoined) auf den Kategorienamen zuzugreifen.

MfG
 
Zurück