@alexsemen94
начинающий прогаммист

Как вызвать метод Any под DbSet?

Пытаюсь вызывать метод Any с помощью Expression, но вылетает исключение, подскажите с правильным решением?
var joinExpressionParmater = Expression.Parameter(filterRule.Instance, suffix + "1");
var prop = Expression.Property(joinExpressionParmater, filterRule.ConditionField);
var joinExpressionBody = Expression.Equal(
                    prop,
                    ToConstantExpressionOfType(TryCastFieldValueType(filter.Value, AllowTypes[filter.Type]), AllowTypes[filter.Type]));
var joinExpression = Expression.Lambda(joinExpressionBody, joinExpressionParmater);
var compiledMethod = DbContextSetMethod.MakeGenericMethod(filterRule.Instance);
var dbSet = compiledMethod.Invoke(Context, null);
var call = Expression.Call(
                    CollectionAny2.MakeGenericMethod(filterRule.Instance), Expression.Parameter(dbSet.GetType(), dbSet.GetType().Name), joinExpression);


в целом мне нужно получить такое выажение
Context.Contacs.Where(c => Context.ContactIdentifiers.Any(ci => ci.ContactId == c.Id && ci.phone = "1"))
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В эксепшене как правило есть ошибка, желательно его выводить, что бы было понятней.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы