Mit Linqtosql, wie würde ich eine Sammlung von User-Objekten erhalten, wenn ich ein Array von UserIDs habe, die ich abholen möchte?Mit Linqtosql, Wie bekomme ich eine Sammlung von Benutzern basierend auf einem Array von Benutzer-IDs
Antwort
Sie können Contains verwenden, um zu überprüfen, ob sich jede Benutzer-ID in dem Array befindet, das Sie haben.
int[] userIDs = ...
var users = db.Users.Where(u => userIDs.Contains(u.UserID));
das ist die Antwort. Die IENumerable.Contains() -Methode, die in LINQtoSQL-Ausdrücken verwendet wird, generiert eine SQL IN() -Funktion. – andy
Versuchen Sie folgendes:
using(var db=new MyDataContext())
{
var users=db.Users.Where(u=>userIds.Contains(u.Id));
}
Ich möchte nur feststellen, dass dies eine ziemlich hässliche Abfrage erzeugt, die SET-Vergleiche (IN) verwendet, anstatt nur eine lange WHERE-Klausel zu erzeugen. – FlySwat
Wenn Sie stattdessen eine SET-Operation und Benutzer gekettet OPs vermeiden wollen, können Sie die PredicateBuilder verwenden, können Sie mit dem helfen.
Es geht ungefähr so:
var userIDs = new[] { 1, 2, 3, 4, 5 };
// build multiple OR expressions
var filter = PredicateBuilder.False<User>();
foreach (var id in userIDs) {
filter = filter.Or(x => x.UserID == id);
}
// fetch data
using (var db = new TheDataContext()) {
var users = db.Users.Where(filter);
// wham! - we have users now.
}
Werfen Sie einen Blick auf den Blog-Post zu verstehen, wie es funktioniert. Dies erzeugt im Grunde eine lange Verkettung von ORs für jede Benutzer-ID in der Liste, bevor sie an eine WHERE-Klausel übergeben wird.
- 1. Lodash Art Sammlung basierend auf externen Array
- 2. Wie bekomme ich eine stark typisierte Sammlung von BlazeDS?
- 3. Steuermenüelemente basierend auf Berechtigungen von angemeldeten Benutzern mit Federsicherheit
- 4. Objekt-Array basierend auf einem anderen Array von Schlüsseln sortieren
- 5. Wie bekomme ich eine Gruppe von Objekten von Firebase?
- 6. Wie bekomme ich alle öffentlichen Kalender von bestimmten Benutzern?
- 7. Wie eine Feature-Sammlung von einem
- 8. Wie bekomme ich eine Zeilenanzahl von einem UITableView
- 9. Backbone: wie kann Referenz ich eine Sammlung von einem Modell
- 10. So durchsuchen Sie eine Sammlung mit einem Array in Powershell
- 11. WPF - Wie bekomme ich eine Zelle von einem DataGridRow?
- 12. Wie bekomme ich Ctypes-Objekt von einem Ctypes-Array
- 13. Wie bekomme ich das String-Array von einem Benachrichtigungs-Bundle?
- 14. Wie bekomme ich eine Liste von Benutzern, die meinen Link auf Facebook geteilt haben?
- 15. Wie bekomme ich ein Dokument basierend auf dem letzten Datum
- 16. Wie bekomme ich Array aus der MongoDB-Sammlung?
- 17. Wie bekomme ich Daten von einem Hash?
- 18. Wie bekomme ich Count of Parent Sammlung von Kind?
- 19. Array von Daten aus Laravel Sammlung erstellen
- 20. Wie erhält man Werte von einem Array basierend auf einem anderen Array?
- 21. Wie erstelle ich ein Array von Objekten basierend auf einem Array von JSON-Objekten mit SwiftyJSON (in Swift)?
- 22. Wie bekomme ich ein Array von DB
- 23. Wie bekomme ich backgrounds.js basierend auf options.js?
- 24. Wie bekomme ich eine Liste von Benutzern mit dem Core Service?
- 25. Sortierung Laravel-Sammlung über Array von IDs
- 26. Wie bekomme ich kurz [] von einem ByteBuffer
- 27. AngularJS-Filter basierend auf einem Array von Strings?
- 28. Wie filtert man ein Array von Objekten basierend auf Werten in einem inneren Array mit jq?
- 29. Anwenden von LINQ Filter basierend auf einem mehrdimensionalen Array
- 30. Wie bekomme ich eine Scheibe von einer Array-Referenz?
Dies ist nur eine Vermutung, aber ist dies für asp.net MVC? –
ja das ist für asp.net mvc warum? – mrblah