最佳答案
在稍后的 EF 中,我试图传入一个匿名函数,作为 Linq 查询的一部分。该函数将传入一个 INT 并返回一个 BOOL (u.Relations TypeId 是一个 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();
}
}
但是,我得到了上面提到的错误。看起来我通过从函数中构造一个谓词把所有事情都做对了。有什么想法吗?谢谢。