XN1*_*N16 1 c# linq asp.net-mvc-3
我有一组映射到数据库并正确填充的对象,但是有一种情况需要根据孙对象的值返回对象的集合。这些对象之间的关系使我无法成功创建此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; }
}
Run Code Online (Sandbox Code Playgroud)
因此基本上它是一对多的关系。
我有一个宠物收藏,我想根据Owner对象的Name属性进行限制。
那这个呢?
Pets.Where( p => p.Toy.Owners.Any(o => o.Name == "OwnerNameYourLookingFor") );
Run Code Online (Sandbox Code Playgroud)
这将返回在其所有者列表中具有OwnerNameYourLookingFor的可枚举的Pets。