如何使用linq

时间:2015-06-03 19:28:26

标签: c# linq

我是linq的新手并陷入了一种情况,即我有一个"学生"具有id(pk)和名称的表,以及"地址"带有城市id(pk)和城市名称的id(pk),地址,studId(fk),城市和城市表的表格。现在,学生可以在"地址"表,我想得到所有学生的结果多个城市(应该是一个数组)名称作为学生实体的财产之一。比如在学生对象中作为id,name,address,city [](城市数组)。

2 个答案:

答案 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并正确设置导航属性。