如何执行以下Linq / Lambda代码?

时间:2010-11-10 13:19:21

标签: c# .net linq lambda

注意:pseduo代码和虚假思考的现场类/属性......以保护无辜的

我正在尝试检索Person个实例,其中此人具有特定名称...作为IQueryable结果。

鉴于以下代码......

public class Person
{
    public ICollection<PersonDetails> PersonDetails { get; set; }
}

public class PersonDetails
{
    public string Name { get; set; }
}

如何检索名为“Fred”的Person

我正在尝试(失败了)......

public static IQueryable<Person> WithName(this IQueryable<Person> value, 
                                          string name)
{
    return value.Where(x => x.PersonDetails.Where(y => y.Name == name));
}

..那不会编译。

任何线索,偷看?

1 个答案:

答案 0 :(得分:12)

尝试Any而不是第二个Where

public static IQueryable<Person> WithName(this IQueryable<Person> value, 
                                          string name)
{
    return value.Where(x => x.PersonDetails.Any(y => y.Name == name));
}
相关问题