tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1538
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Jantz Jantz ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    207
    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 :
    1
    2
    3
    4
    5
    6
    7
    
            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
     

  2. #2
    Jantz Jantz ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    207
    Nicht so schüchtern sein!

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

    Hier die Linq Abfrage in BeitragRepository
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
            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
     

Ähnliche Themen

  1. C# LINQ to XML
    Von Azubis im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 06.12.10, 13:27
  2. Linq & Aliase
    Von Mel_One im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 28.01.10, 21:05
  3. [LINQ] Index by value
    Von StupidBoy im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 13.01.09, 18:39
  4. Linq in Silverlight
    Von Ange2204 im Forum .NET WPF & Silverlight
    Antworten: 0
    Letzter Beitrag: 01.04.08, 08:19
  5. [linq] Joins?
    Von yellowspam im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 06.02.08, 14:13