【发布时间】:2016-10-17 11:25:43
【问题描述】:
在将项目更新到.net core(从完整的.net)之前,我已经使用了这样的东西,来做和操作beetwen两个表达式:
public class ExpressionBuilder<T>
{
private Expression<Func<T, bool>> _mainExpression;
public ExpressionBuilder()
{
_mainExpression = e => true;
}
public void AddExpression(Expression<Func<T, bool>> expression)
{
_mainExpression = _mainExpression.And(expression);
}
public Expression<Func<T, bool>> Build()
{
return _mainExpression;
}
}
现在变量_mainExpression 没有实现方法And。 合并两个表达式应该怎么做?
【问题讨论】:
-
这行得通吗?
-
是的,成功了。
-
什么框架。我使用 System.Linq 测试了 4.5 和 4.6;使用 System.Linq.Expressions;你确定这不是你的自定义扩展方法吗?msdn.microsoft.com/en-us/library/…msdn.microsoft.com/en-us/library/bb335710(v=vs.110).aspx
-
框架 - 4.5.1,使用:System 和 System.Linq.Expressions。它工作正常。但是 nvm,它在 .net 核心中不起作用,这是主要问题。
-
您可能一直在使用 LinqKit 或它的姊妹库 PredicateBuilder(或类似的东西)。这些在 .Net Core 中也可用。