У меня есть пара функций Entity Framework, которые отличаются только от операторов, например.Передача функции сравнения в качестве параметра в Entity Framework
public int GetCountEqual(int i)
{
return Context.Entity.Where(e => e.Value == i).Count();
}
public int GetCountLess(int i)
{
return Context.Entity.Where(e => e.Value < i).Count();
}
public int GetCountLessOrEqual(int i)
{
return Context.Entity.Where(e => e.Value <= i).Count();
}
и так далее. Очевидно, что это ошеломленная версия моей реальной программы ...
Я думаю, что должно быть возможно каким-то образом передать оператор как выражение параметра/лямбда (поскольку они каноничны), но что бы я ни сказал, ve пробовал до сих пор по этим линиям приводит к печально известным «Тип узла выражения LINQ« Invoke »не поддерживается в LINQ to Entities». ошибка.
Любые подсказки относительно того, как передать функцию сравнения в качестве параметра, чтобы он мог быть переведен в SQL? Запрос должен выполняться на уровне базы данных, я не могу загрузить объекты в память, а затем запустить там лямбда ...
Спасибо! Это отвечает на вопрос. Извините, вы еще не можете продвигать вас. Какой правильный формат задавать следующий вопрос? Измените его или задайте новый вопрос? Могу ли я передать только выражение на Func Entity? Или также что-то более прямо на струне? Поскольку мое выражение «whereExpression» должно работать с двумя строковыми свойствами Entity (в зависимости от их значений), я бы хотел передать лямбду на строку вместо выражения Expression on Entity. – Shuma
ОК. Последующие публикации опубликованы на http://stackoverflow.com/questions/26901446/passing-a-comparison-function-and-value-as-parameters-into-entity-framework – Shuma
@aducci, он не загружает все данные перед Count () вызов? – EduLopez