Вы пытаетесь передать произвольную функцию .NET в ... как структура сущностей может надеяться перевести это в SQL? Вы можете изменить его, взяв вместо него Expression<Func<int, bool>>
, и построить из него предложение Where
, хотя это не будет особенно просто, потому что вам нужно будет переписать выражение с другим параметром выражение (т. е. замена любого выражения параметра в исходном дереве выражений на выражение вызова u.RelationTypeId
).
Если честно, просто указав u.RelationTypeId
в лямбда-выражении, которое вы используете для создания дерева выражений для передачи в метод, вам лучше использовать:
public IEnumerable<UserBandRelation> GetBandRelationsByUser(
Expression<Func<UsersBand, bool>> predicate)
{
using (var ctx = new OpenGroovesEntities())
{
var relations = ctx.UsersBands.Where(predicate);
// mapping, other stuff, back to business layer
return relations.ToList();
}
}