Arbeit habe ich Dokumente Tisch und Zeichen Tisch. Dokument Datensatz kann mit vielen Aufzeichnungen in Zeichen verbunden werden Tabelle..Where in LinQ nicht richtig
Jetzt möchte ich alle Aufzeichnungen über Dokumente erhalten Tabelle, wenn Dokument-ID erscheint in Zeichen Tabelle.
Hier erhalte ich alle Dokumente:
var documents = (from c in context.documents select c);
Hier bekomme ich alle meine Zeichen und speichern in Liste:
var myDocuments = (from s in context.signs where s.UserId== id select s.ID).ToList();
Diese Liste enthält Sammlung auf Dokument-ID.
Und hier, ich versuche, alle Dokumente zu erhalten, die in myDocuments Liste existiert:
documents.Where(item => myDocuments.Contains(item.ID));
Aber, wenn ich .ToList tun() durchweg alle Datensätze zurück (in der Datenbank existiert nur eine kompatibel Aufzeichnung)
Was ist falsch in LinQ-Anweisung?
Ich kann 's.UserId == ID' nicht vergleichen vergleichen. Beziehen Sie Gehäuse mit? – Petaflop
Speichern Sie das Ergebnis dieser Abfrage: 'documents.Where (item => myDocuments.Contains (item.ID));' irgendwo? – Fabjan
Fabjan, ich speichere das Ergebnis der Abfrage nicht, weil ich später viele Filter anwende und schließlich mache ich .ToList() –