【发布时间】:2020-09-09 19:49:28
【问题描述】:
我有以下表达式树,当我编译表达式树时它给我一个错误。
string tenantId = "tst user";
Expression<Func<MongoIdentityUser, bool>> filterToUse = t => t.IsActive == true && t.IsApproved == true;
var expConst = Expression.Constant(tenantId);
var paramExp = Expression.Parameter(typeof(MongoIdentityUser), "t");
var callExp = Expression.PropertyOrField(paramExp, "TenantId");
var equalExp = Expression.Equal(callExp,Expression.Constant(null));
var equalExp2 = Expression.Equal(callExp, expConst);
var conditionExp = Expression.Condition(equalExp, Expression.Constant(true), equalExp2);
var AndExp = Expression.AndAlso(filterToUse.Body, conditionExp);
var lambdaExp1 = Expression.Lambda<Func<MongoIdentityUser, bool>>(AndExp, paramExp);
Console.WriteLine(lambdaExp1.Compile());
The generated expression is as follows
t => (((t.IsActive == True) AndAlso (t.IsApproved == True)) AndAlso IIF((t.TenantId == null), True, (t.TenantId == "tst user")))
【问题讨论】:
-
你检查this的答案了吗?
标签: c# .net asp.net-core-mvc