«Тип узла выражения LINQ 'Invoke' не поддерживается в LINQ to Entities» - озадачен!

Позже в моем EF я пытаюсь передать анонимную функцию, которая будет использоваться как часть моего запроса Linq. Функция передаст INT и вернет BOOL (u.RelationTypeId - это INT). Ниже представлена ​​упрощенная версия моей функции:

public IEnumerable<UserBandRelation> GetBandRelationsByUser(Func<int, bool> relation)
{
    using (var ctx = new OpenGroovesEntities())
    {
        Expression<Func<UsersBand, bool>> predicate = (u) => relation(u.RelationTypeId);

        var relations = ctx.UsersBands.Where(predicate);

        // mapping, other stuff, back to business layer
        return relations.ToList();
    }
}

Однако я получаю указанную выше ошибку. Похоже, я все делаю правильно, создавая предикат из функции. Есть идеи? Спасибо.

62
задан Ryan Peters 12 March 2011 в 19:32
поделиться