Я пытаюсь создать анонимную функцию для функции linq Any. Я не понимаю, почему вы не можете это сделать:Почему нельзя преобразовать в дерево выражений?
found = db.Label.Any(lb => {
var shortNames = lb.lbShortName.Split('/').ToList();
bool foundShortName = false;
foreach (var shortName in shortNames)
{
if (String.Compare(shortName, name, StringComparison.OrdinalIgnoreCase) == 0)
{
foundShortName = true;
break;
}
}
return foundShortName;
Или лучше, что я не понимаю, почему это Expression(Func(,))
и не Func(,)
});
Это довольно сложная функция! linq действительно хорошо подходит для простых вещей. возможно, вы можете разбить это на отдельные шаги с помощью прогнозов. –
EF нуждается в выражениях, чтобы преобразовать Linq-код в SQL. – juharr
Кроме того, если я правильно прочитал ваш код, вы могли бы просто сделать один вызов «Содержит». –