1

我面临的错误是

委托 '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如何解决它?

4

2 回答 2

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),但您的 lambdaIEnumerable<Font>反而返回。因此错误。

Any 的文档中

确定序列的任何元素是否存在或是否满足条件。

于 2012-08-31T03:43:17.550 回答
0

你错过了 parentesis 一个 where 子句接受一个接受一个 T 并返回一个布尔值的函数。表达式应该是 s=>s.somethingBool

var fontCandidates = db.FontCategories.Include("Fonts").SelectMany(s => s.Fonts);
var activeFonts = fontCandidates.Where(f => !f.Inactive).ToList();

           

于 2012-08-31T03:47:17.910 回答