文字列変数としてクラスプロパティ名があり、LINQクエリでそのプロパティを使用したいとします。下記の実施例:LINQラムダ式で文字列変数を使用
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