我是linq的新手并陷入了一种情况,即我有一个"学生"具有id(pk)和名称的表,以及"地址"带有城市id(pk)和城市名称的id(pk),地址,studId(fk),城市和城市表的表格。现在,学生可以在"地址"表,我想得到所有学生的结果多个城市(应该是一个数组)名称作为学生实体的财产之一。比如在学生对象中作为id,name,address,city [](城市数组)。
答案 0 :(得分:0)
Student.addresses = Address.Where(x => x.studId == Student.id).toList();
这或多或少是您想要做的,查询您在学生ID上匹配的地址表,然后您可以循环浏览地址并选择城市,这也会为您提供更多信息。
答案 1 :(得分:0)
var students=db.Students.Select(s=>new {
s.id,
s.name,
s.Addresses,
Cities=s.Addresses.Select(a=>a.City.Name).ToList()
});
当然,您可以选择学生......
var students=db.Students
.Include(s=>a.Addresses)
.Include(s=>a.Addresses.City);
然后,如果你需要知道学生所在的城市,那就像是:
foreach(var student in students)
Console.WriteLine("{0} lives in {1}",
student.Name,
String.Join(", ",student.Addresses.Select(a=>a.City.Name)));
以上假设您正在使用EntityFramework并正确设置导航属性。