c# - 如何在 ICollection 属性上使用 Any() 方法创建表达式树?
问题描述
我正在尝试创建表达式树来动态更改谓词,我有一个如下所示的实体
产品
目录号(pk)
供应商 ID
ProductToVendor(集合/导航属性)
我创建了如下表达式树
Expression<Func<Product, bool>> finalExpression = null;
List<Expression> expressionList = new List<Expression>();
var parameter = Expression.Parameter(typeof(Product), "p");
//Create predicate using expression tree
foreach (var keycolumn in request.KeyColumns)
{
expressionList.Add(Expression.Equal(
Expression.Property(parameter, keycolumn.ColumnName),
Expression.Constant(keycolumn.ColumnValue, typeof(string))
));
}
expressionList.Add(Expression.Equal(
Expression.Property(parameter, "SiteId"),
Expression.Constant(request.SiteId, typeof(int))
));
我希望谓词是这样的
var vf = Context.Set<Product>().Where(p => p._ProductToVendor.Any(v => v.VendorId == VendorId) && p.SiteId == SiteId && p.CatalogNumber == catalogNo).ToList();
但我无法获得预期的结果,任何人都可以帮忙!
解决方案
推荐阅读
- android - 如何转发端口以进行 App 测试。测试机器人云
- javascript - 如何从自动选择所有选项的 ng-options 下拉菜单中创建“全选”选项?
- ios - UISwitch TableViewCell
- javascript - 将 Chrome 扩展权限限制为部分地址
- r - 将随机值添加到向量中的随机块
- python - 如何在熊猫数据框和稀疏矩阵之间提取相同的列
- c# - 如何在不超过窗口高度的情况下使 WPF Grid 行具有自动高度?
- java - 将对象添加到 arraylist 是否会将对象的变量设置为 null?
- java - Java ListView 有问题吗?
- r - 将 persp3D 或 plot3D 与列中的数据一起使用并计算 NA 位置