Ich versuche eine generische Methode zu erstellen, die ich überall in meiner Anwendung verwenden kann.Wie setze ich Lambda, wenn die Eigenschaften bis zur Laufzeit nicht bekannt sind?
Hier ist meine Methode:
public T GetEntry(ObjectId id)
{
IMongoCollection<T> collections = db.GetCollection<T>(database);
var getObj = collections.Find().FirstOrDefault(); // something like x => x.id == id
return getObj;
}
Find
nimmt einen Lambda-Ausdruck, der die Einschränkungen angeben, aber ich kann es nicht gesetzt, da die Eigenschaften werden erst zur Laufzeit bekannt sein. Wie richte ich es ein?
Okay, habe ich versucht, Ihre zweite Lösung und es hat funktioniert !! Ich muss es nur in 'typeof (ObjectId)' ändern, da es 'ObjectId' und nicht' int' ist. Nur eine Frage. Wenn ich Ihre erste Lösung verwenden möchte, muss ich "IEntity" für alle meine Modellklassen implementieren? –
@CarlosMiguelColanta Ja, ich vergesse zu erwähnen, dass für die erste Lösung alle Ihre Modellklassen IEntity implementieren müssen. Ich selbst bevorzuge die erste Lösung, weil es ein harter Typ ist. – Kahbazi