【问题标题】:Linq Expression on sub child entities for n levelsn 级子实体上的 Linq 表达式
【发布时间】:2013-02-01 15:14:32
【问题描述】:
以下查询需要通用表达式。
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")));
我想为一对一和多个关系查询生成动态表达式。
【问题讨论】:
标签:
linq
entity-framework-4
linq-to-entities
linq-expressions
【解决方案1】:
我找到了解决办法
表达式 proeprtyexpression = Expression.Property(PTeamRoles, "TeamId");
表达式值express = Expression.Constant("A");
//表达式内部表达式 = Expression.Lambda(Expression.Equal(proeprtyexpression, valueexpress), PTeamRoles);
表达式内部表达式 = 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);