我有以下型号:
public class Person
{
public string fullName { get; set; }
public virtual ICollection<Hobby> hobbies { get; set; }
public virtual Location location { get; set; }
}
public class Hobby
{
public string hobbyName { get; set; }
public virtual ICollection<Person> people { get; set; }
}
public class Location
{
public string locationName { get; set; }
public virtual ICollection<Person> People { get; set; }
}
一个人可以有很多爱好,副Versa,一个人可以有一个位置。
我想查询一个给定位置返回该位置人员的所有不同爱好
所以如果位置是&#34;达拉斯&#34;,找到达拉斯的所有人,返回他们所有的爱好,并删除重复。
答案 0 :(得分:2)
您可以尝试这种方式:
var hobbies = (from h in hobbies
where h.people.Any(p => p.location.locationName == "Dallas")
select h);
答案 1 :(得分:0)
您可以使用FK很好地表示关系,因此您可以像这样简化查询:
from p in persons
Where p.location.locationName = "London"
select new
{
person = p,
hobbies = p.hobbies
}