我面临的错误是
委托 'System.Func< MyWebSiteApp.Models.FontCategory,int,bool >' 不接受 1 个参数
var s = db.FontCategories.Include("Fonts").
Where(s=>s.Fonts.Where(s=>s.Inactive == false).ToList();
任何clu如何解决它?
我想你在 Linq Any之后。这将返回至少包含一种活动字体的字体类别:
var s = db.FontCategories.Include("Fonts").
.Where(s => s.Fonts.Any(s => s.Inactive == false)).ToList();
您现有代码的问题是Where需要一个Predicate<FontCategory>
类型(即,返回 true/false 的 lambda),但您的 lambdaIEnumerable<Font>
反而返回。因此错误。
从Any 的文档中:
确定序列的任何元素是否存在或是否满足条件。
你错过了 parentesis 一个 where 子句接受一个接受一个 T 并返回一个布尔值的函数。表达式应该是 s=>s.somethingBool
var fontCandidates = db.FontCategories.Include("Fonts").SelectMany(s => s.Fonts);
var activeFonts = fontCandidates.Where(f => !f.Inactive).ToList();