C# 如何使用ICollection属性上的任何()方法创建Expression树?

C# 如何使用ICollection属性上的任何()方法创建Expression树?,c#,lambda,expression,C#,Lambda,Expression,我正在尝试创建表达式树以动态更改谓词, 我有一个如下的实体 产品 目录号(pk) 本多利德 ProductToVendor(集合/导航属性) 我已经创建了表达式树,如下所示 Expression<Func<Product, bool>> finalExpression = null; List<Expression> expressionList = new List<Expression>(); var parameter = Expressio

我正在尝试创建表达式树以动态更改谓词, 我有一个如下的实体

产品 目录号(pk)

本多利德

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))
           ));
表达式finalExpression=null;
List expressionList=新列表();
var参数=表达式参数(产品类型),“p”);
//使用表达式树创建谓词
foreach(request.KeyColumns中的var keycolumn)
{
expressionList.Add(Expression.Equal(
Expression.Property(参数,keycolumn.ColumnName),
Expression.Constant(keycolumn.ColumnValue,typeof(string))
));
}
expressionList.Add(Expression.Equal(
Expression.Property(参数“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();
var vf=Context.Set().Where(p=>p.\u ProductToVendor.Any(v=>v.VendorId==VendorId)和&p.SiteId==SiteId&&p.CatalogNumber==catalogNo).ToList();
我试过了

但我没能达到预期的效果,
有人能帮忙吗

查看可能的重复项,但它使用pedicate builder,如果需要使用字符串中字段的名称创建谓词,请尝试此项。。。你的问题很不完整,我觉得缺了几块。我在任何地方都看不到
\u ProductToVendor
。不清楚
request.KeyColumns
是否应该是
.Any()
内部或外部的列(代码中缺少
CatalogNumber
)。
typeof(string)
闻起来很难闻。。。您的所有列都是
string
s吗?