LINQ verbinden zweier DataTables

Hallo ich habe ein problem das verbinden von zwei Datentabellen mithilfe von LINQ.
Tabellen, die Spalten so:

table1        table2
ID, name       ID, stock
1, item1       1, 100
2, item2       3, 50
3, item3

Ich habe linq to join wie diesem:

DataTable dtResult = new DataTable();
dtResult.Columns.Add("ID", typeof(string));
dtResult.Columns.Add("name", typeof(string));
dtResult.Columns.Add("stock", typeof(int));

var result = from dataRows1 in table1.AsEnumerable()
             join dataRows2 in table2.AsEnumerable()
             on dataRows1.Field<string>("ID") equals dataRows2.Field<string>("ID")

             select dtResult.LoadDataRow(new object[]
             {
                dataRows1.Field<string>("ID"),
                dataRows1.Field<string>("name"),
                dataRows2.Field<int>("stock"),
              }, false);
result.CopyToDataTable();

Problem ist, das Ergebnis zeigt nur die IDs, die in der Tabelle2.

dtResult
ID, name, stock
1, item1, 100
3, item3, 50

Ich muss auch die fehlenden Elemente. Dies ist das erwartete Ergebnis:

dtResult
ID, name, stock
1, item1, 100
2, item2, 0  //Prefer if it is "0", otherwise can be left "null"
3, item3, 50

Ich glaube, ich sollte das tun, left outer join, aber ich habe nicht genug wissen über linq. Hilfe zu schätzen.
Danke!

InformationsquelleAutor der Frage user1080533 | 2013-12-24

Schreibe einen Kommentar