我尝试为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(,)
});
答案 0 :(得分:1)
您必须使用Linq提供程序,如LINQ-to-SQL或Entity Framework。它试图将表达式转换为类似SQL查询的东西,但这并不简单。如果db.Label
是普通IEnumerable<>
而不是IQueryable<>
,这样就行了。