-1

Need Generic expression for the below Query.

I don't want to use the Dynamic library and Predicate builder.

I am generating expressions dynamically.

var test = entity.User.Where(PUser => PUser.Role.TeamRoles.Any(PTeamRoles => PTeamRoles.TeamId == "222")));

I would like generate dynamic expression for one-to-one and then many relational query.

Spontifixus
  • 6,570
  • 9
  • 45
  • 63

1 Answers1

0

I got the soltuion

Expression proeprtyexpression = Expression.Property(PTeamRoles, "TeamId"); Expression valueexpress = Expression.Constant("A"); //Expression innerexpression = Expression.Lambda(Expression.Equal(proeprtyexpression, valueexpress), PTeamRoles); Expression innerexpression = Expression.Lambda(ExcelExpressionHelper.ApplyOperator(proeprtyexpression, valueexpress, "StartsWith"), PTeamRoles);

        Type winnertype = PTeamRoles.Type;
        Type woutertype = PRole.Type;
        var wouterProperty = Expression.Property(PRole, "TeamRoles");

        var outerMethodExpression = Expression.Call(typeof(Enumerable), "Any", new[] { winnertype }, wouterProperty, innerexpression);