Skip to main content
 首页 » 编程设计

c#之LINQ 查询取决于孙子集合

2024年02月02日25rubylouvre

我有一组映射到我的数据库并正确填充的对象,但是我有一种情况需要根据孙对象的值返回对象集合。这些对象之间的关系导致我无法成功创建此 linq 查询。

对象如下:

public class Pet 
{ 
    public int PetID { get; set; } 
    public string Name { get; set; } 
 
    public virtual int ToyID { get; set; } 
    public virtual Toy Toy { get; set; } 
} 
 
public class Toy 
{ 
    public int ToyID { get; set; } 
    public string Name { get; set; } 
 
    public virtual ICollection<Owner> Owners { get; set; } 
    public virtual ICollection<Pet> Pets { get; set; } 
} 
 
public class Owner 
{ 
    public int OwnerID {get; set;} 
    public string Name {get; set;} 
 
    public virtual ICollection<Toy> Toys { get; set; } 
} 

所以基本上它是一对多对多的关系。

我有一个宠物集合,我想根据 Owner 对象的 Name 属性进行限制。

请您参考如下方法:

这个呢?

Pets.Where( p => p.Toy.Owners.Any(o => o.Name == "OwnerNameYourLookingFor") ); 

这将返回在其所有者列表中具有 OwnerNameYourLookingFor 的可枚举的宠物。