Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Expression<Func<ReferencedEntity, bool>> expected = (ReferencedEntity referencedEntity) => foreignKeys.Contains(referencedEntity.Id);
- Expression<Func<ReferencedEntity, bool>> actual;
- ParameterExpression entityParameter = Expression.Parameter(typeof(TReferencedEntity), "referencedEntity");
- MemberExpression memberExpression = Expression.Property(entityParameter, "Id");
- Expression convertExpression = Expression.Convert(memberExpression, typeof(object)); //This is becuase the memberExpression for Id returns a int.
- //Expression containsExpression = Expression.Call(????
- //actual = Expression.Lambda<Func<TReferencedEntity, bool>>(????, entityParameter);
- /// <summary>
- ///
- /// </summary>
- /// <param name="foreignKeys"></param>
- /// <returns></returns>
- private Expression<Func<TReferencedEntity, bool>> BuildForeignKeysContainsPredicate(List<object> foreignKeys, string primaryKey)
- {
- Expression<Func<TReferencedEntity, bool>> result = default(Expression<Func<TReferencedEntity, bool>>);
- try
- {
- ParameterExpression entityParameter = Expression.Parameter(typeof(TReferencedEntity), "referencedEntity");
- ConstantExpression foreignKeysParameter = Expression.Constant(foreignKeys, typeof(List<object>));
- MemberExpression memberExpression = Expression.Property(entityParameter, primaryKey);
- Expression convertExpression = Expression.Convert(memberExpression, typeof(object));
- MethodCallExpression containsExpression = Expression.Call(foreignKeysParameter
- , "Contains", new Type[] { }, convertExpression);
- result = Expression.Lambda<Func<TReferencedEntity, bool>>(containsExpression, entityParameter);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return result;
- }
Add Comment
Please, Sign In to add comment