Frage

Ich möchte eine Subtraktion von Sätzen basierend auf Kriterien tun. Eine Pseudo-Abfrage würde wie folgt aussehen:

select table1.columnn1
      ,table1.column2
  from table1, table2
 where (table1.column1.value1 not in table2.column1
        and
        table1.column2.value2 not in table2.column2)

Ich kann es machen etwa hier:

dim list = From tbl1 In table1 Where tt.column1 ...

Und von dort Ich weiß nicht, was zu tun ist.

War es hilfreich?

Lösung

Haben Sie einen Blick auf die Except Standardabfrageoperator in LINQ. Daraus ergibt sich die Mengendifferenz von zwei Sequenzen.

http://msdn.microsoft.com /en-us/library/system.linq.enumerable.except.aspx

Sie können auch den Contains Operator verwenden, um zu erreichen, was Sie wollen, wie pro Probe unter:

dim table2Col1 = from t in table2 select t.column1
dim table2Col2 = from t in table2 select t.column2

dim results = _
   from t in table1 _
   where not table2Col1.Contains(t.column1) _
   and  not table2Col2.Contains(t.column2) _
   select new with { .column1=t.column1, .column2=t.column2 }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top