none
Linq to SQL RRS feed

  • Frage

  • Hallo NG,

    ich versuche verzweifelt folgenden SQL Befehl in Linq umzusetzen.

    Select * from A1 WHERE A1.OID NOT IN (SELECT A2.OID FROM A2)

    Danke für jeden Hinweis und TIpp im voraus.

     

    Ingo

     

    P.S. Ein frohes Fest !!

     

    Donnerstag, 23. Dezember 2010 15:58

Alle Antworten

  • Hallo Ingo,

    käme etwas auf die Typen an, dann kann man ggf. Except benutzen.

    Ansonsten aber zum Beispiel:

     var res = from a1 in kontext.A1s
     where kontext.A2s.All(a2=>a1.OID != a2.OID)
     select a1;
    
    

    ggf. auch statistisch performanter:

     var res = from a1 in kontext.A1s
       where !kontext.A2s.Any(a2=>a1.OID == a2.OID)
       select a1;
    


    Das wird intern dann auch in ein (etwas anderes) Sub-Select als SQL-Abfrage umgesetzt.

    Oder: [c# - Linq not in select on datatable - Stack Overflow]. Also etwa:

      var res = from a1 in kontext.A1s 
        where !(from a2 in kontext.A2s select a2.OID).
        Contains(a1.OID) select a1; 


    ciao Frank

    Donnerstag, 23. Dezember 2010 16:22
  • Hallo Frank,

     

    danke für die schnelle Hilfe.

     

    Frohes FEst Dir und Deiner Familie

     

    Grüße  Ingo

    Donnerstag, 23. Dezember 2010 17:04
  • Danke Ingo,

    auch Dir ein frohes Fest und einen guten Rutsch!

     


    ciao Frank
    Donnerstag, 23. Dezember 2010 19:09