【发布时间】:2016-08-05 23:32:11
【问题描述】:
我有一个类属性名称作为字符串变量,并希望在 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";
有没有可能在 lambda 表达式 d => d.propname == "value" 中使用它?我不确定它是否可行,而且在逻辑上似乎也不可能。所以想发布一个问题,看看是否有办法。请提出建议。
请注意,Single() 调用发生在MongoDB C# Driver 上,因此不确定反射是否会起作用。
【问题讨论】:
-
可能是 Linq Expression 的工作(不要与 lambda 表达式混淆);在给定参数的情况下即时编译正确的“事物”。
-
对于两个回答所有者,错过指出它在 MongoDB C# 驱动程序上。对此很抱歉,但不管怎样,这两个答案都是好的和有效的。
-
@Rahul 你试过了吗?
-
@Ignaus,我在路上,所以不能确定。
-
@Sehnsucht,感谢您指出这一点,但不幸的是,这是我不懂的非英语。但是你在说什么。
标签: c# mongodb linq mongodb-.net-driver