是否可以动态创建此linq语句?

时间:2013-05-19 09:50:24

标签: c# asp.net linq

我正在创建一个规则验证类 - 没什么特别的。

我想设置这样的属性:

public int MaxLoanAmount { get; set; }

数据将像这样验证。 _app是指通过构造函数注入的数据。

bool MaxLoanAmountValid
{
   get { return _app.LoanAmount >= MaxLoanAmount; }
}

我可以构造一些if逻辑来测试我的每个属性是否都已设置,验证它们并返回结果,但是我想尝试比这更聪明。

我想知道是否可以构建动态表达式,所以当设置MaxLoanAmount时,我添加“MaxLoanAmountValid”,依此类推“MaxLoanAmountValid AND MinLoanAmountValid”等。

提前致谢。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用.NET API动态构建Linq表达式树,也可以使用其中一种免费工具来简化作业。有些人可以将字符串解析为表达式,因此您所要做的就是构建字符串。请参阅答案中的链接以获得几乎相同的问题:Dynamically Build Linq Lambda Expression

如果你想更加“聪明”,你可以使用像MethodBase.GetCurrentMethod().Name这样的反射动态获取其Set方法中的当前属性名称。