我有以下声明:
var posts = BlogPostRepository.Find()
.Where(x => x.Tags.Where(y => y.Name == tag))
.ToList();
它给了我第二个(内部)Where子句的编译时错误,说: -
错误1无法将lambda表达式转换为委托类型'System.Func',因为块中的某些返回类型不能隐式转换为委托返回类型
我正在尝试按特定标记名称过滤所有BlogPost。
答案 0 :(得分:2)
这部分:
x.Tags.Where(y => y.Name == tag)
将返回Tags
中具有Name == tag
的任何内容的IEnumerable。然后你将它与“真实”进行比较,这没有多大意义。
也许你想要这个?
var posts = BlogPostRepository.Find()
.Where(x => x.Tags.Any(y => y.Name == tag))
.ToList()
或代替Any,All?