Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „LINQ-Abfrage in C#“

limubai81

Nicht mehr ganz neu hier

Hiho ich habe u.a. Abfrage welche alle hinterlegten Sprachen abfragt und dann für jeden Sprache einen eigenen Editor erstellt. Dies war auch in soweit in Ordnung so lange es nur 2 Sprachen waren, nun sind aber einige Spachen hinzukommen.

die derzeitige Abfrage:
Code:
foreach (Language lang in context.Languages.OrderBy(x => x.Position))
        {
// erstelle Editor
}
Da nun aber nicht jeder Client zbsp einen tschechischen Editor angezeigt bekommen soll habe ich nun eine neue Tabelle angelegt in dem jedem Client die Sprachen zugewiesen werden.
Ich würde nun gerne immer den dt. Editor und die zugewiesenen Fremdsprachen-Editoren erstellen lassen. Leider hatte ich vor Ewigkeiten mal Access/SQL und in LINQ arbeite ich mich gerade erst ein.

Hier mal die Tabellen

Language:
- Id: 1, 2, 3, 11, 12
- Name: Deutsch, Englisch, Spanisch, Norwegisch, Tschechisch)
- CultureInfo
- Position

Client2Language:
- Id: 1, 2, 3,
- FK_Client: 53, 53, 53
- FK_Language: 2, 11, 12

So schauen die Tabellen derzeitig aus und die Client-ID kann ich über die Session auslesen.
Wäre super wenn mir jemand bei dem Problem ein bisschen helfen könnte.

lg LiMu
 

limubai81

Nicht mehr ganz neu hier

AW: LINQ-Abfrage in C#

EDIT
Da ich nicht schon wieder nen Doppelpost machen will editier ich den mal :)
Ich habe es soeben glaube doch noch geschafft die richtige Abfrage zu erstellen.

Code:
        var query =
            from lang in context.Languages.OrderBy(x => x.Position)
            join b in context.Client2Languages
            on lang.Id
            equals b.FK_Language
            where Client_ID == b.FK_Client
            select lang;

        foreach (var lang in query)
        {
        // mach was
        }
 
Zuletzt bearbeitet:

ovbb

es gibt für alles eine weg

AW: LINQ-Abfrage in C#

Persönlich würde ich nicht 2 syntaxen vermischen.

Code:
        var query =
                     from lang in context.Languages
                          join b in context.Client2Languages  
                                  on lang.Id equals b.FK_Language
                     where Client_ID == b.FK_Client
                     [COLOR=Red]orderby lang.Position[/COLOR]
            select lang;

        foreach (var lang in query)
        {
        // mach was
        }
Es kommt aber immer drauf an was du mit den daten genau machen möchtest.
Ich persönlich lager solche abfragen immer in eigens dafür eingerichtete Klassen aus in denen ich nur Abfragen habe.

Hierbei kannst du dann zB. schreiben

Code:
internal List<Languages> getLanguageForClient(int ClientID) {
  return (from ... select lang).ToList();
}
Weiters würde ich die Tabelle Client2Language anders gestallten. Hier brauchst du keine ID da die Tupel ansich über den gemeinsemen Schlüssel {FK_Language, FK_Client} schon eindeutig sind.
 

limubai81

Nicht mehr ganz neu hier

AW: LINQ-Abfrage in C#

Danke dir für die Hinweise, hatte die Abfrage nochmal geändert und dann auch als List ausgelagert da ich das Abfrageergebnis in der Seite 3 aufrufen muss.

Code:
public List<Language> Languageabfrage()
    {
       List<Language> lactiveLanguage = context.Client2Languages.Where(x => x.FK_Client == Client_ID).Select(x => x.Language).OrderBy(x => x.Position).ToList();
        return lactiveLanguage;
    }
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.874
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben