我面临的错误是
委托'System.Func< MyWebSiteApp.Models.FontCategory,int,bool>' 不带1个参数
var s = db.FontCategories.Include("Fonts").
Where(s=>s.Fonts.Where(s=>s.Inactive == false).ToList();
如何修复它?
答案 0 :(得分:4)
我认为你是在追逐Linq Any 。这将返回包含至少一个活动字体的字体类别:
var s = db.FontCategories.Include("Fonts").
.Where(s => s.Fonts.Any(s => s.Inactive == false)).ToList();
现有代码的问题在于 Where 期望Predicate<FontCategory>
类型(即返回true / false的lambda),但lambda会返回IEnumerable<Font>
。因此错误。
确定序列的任何元素是否存在或满足条件。
答案 1 :(得分:0)
你错过了parentesis一个where子句采取一个功能,取一个T并返回一个bool。表达式应该是s =&gt; s.somethingBool
var fontCandidates = db.FontCategories.Include("Fonts").SelectMany(s => s.Fonts);
var activeFonts = fontCandidates.Where(f => !f.Inactive).ToList();