-1

以下のクエリにはジェネリック式が必要です。

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

式を動的に生成しています。

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

1 対 1 のリレーショナル クエリと多数のリレーショナル クエリの動的な式を生成したいと考えています。

4

1 に答える 1

0

私は解決策を得ました

式proeprtyexpression=Expression.Property(PTeamRoles、 "TeamId"); 式valueexpress=Expression.Constant( "A"); //式innerexpression=Expression.Lambda(Expression.Equal(proeprtyexpression、valueexpress)、PTeamRoles); 式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);
于 2013-02-01T07:14:32.163 に答える