У меня есть имя свойства класса как строковая переменная и вы хотите использовать это в запросе LINQ. Ниже пример:Использовать строковую переменную в выражении LINQ lambda
public class Demo
{
public string prop1 {get; set;}
public string prop2 {get; set;}
public string prop3 {get; set;}
}
Я могу это сделать
var data = db.Single<Demo>(d => d.prop1 == "value");
Но не знаю, что это свойство во время выполнения и получить этот строковый параметр как
string propname = "prop2";
Есть ли возможность использовать это в лямбда-выражении d => d.propname == "value"
? Я не уверен, что это может быть и логически не представляется возможным. поэтому подумал о том, чтобы задать вопрос и посмотреть, есть ли способ. Пожалуйста, предложите.
Обратите внимание, что звонок Single()
происходит через MongoDB C# Driver
и, таким образом, не будет уверен, будет ли отражение работать.
Возможно, это работа для выражения [Linq Expression] (https://msdn.microsoft.com/fr-fr/library/system.linq.expressions (v = vs.110) .aspx) (не следует путать с лямбда-выражением); скомпилировав правую «вещь» на лету с учетом параметра. – Sehnsucht
Как для владельца ответа, так и для того, чтобы указать, что он установлен на драйвер MongoDB C#. Извините за это, но независимо от того, что оба ответа являются хорошими и действительными. – Rahul
@ Rahul вы пробовали? – squill25