从外键表中获取值

时间:2012-06-06 08:05:23

标签: asp.net entity-framework

使用Entity框架将数据库与我的asp.net应用程序连接。我在Foreign key table有两列StaffId and SectionId。这里StaffIdStaff表的主键,SectionIdSections表的主键。我在这个表中有值

StaffId     SectionId
-------     ---------
  1            1
  2            5
  5            8
  1            5
  1            8

在这里,我知道StaffId,我需要为这个相应的职员提供所有SectionIds(例如,工作人员1的1,5和8)。

如果我想通过First方法知道详细信息,可以使用已知的StaffId,

DataObject.Entities dataEntities=new DataObject.Entities();

DataObject.Section section = dataEntities.Sections.First(s=>s.Staffs
                                  .Select(ss=>ss.StaffId).Contains(staffId));

有了这个,我可以获得与first section匹配的StaffId的信息。(例如:关于sectionid = 1的信息)

以同样的方式,我试图获得特定staffId的所有sectionId,例如

List<int> sectionIds = dataEntities.Sections.Where(s => s.Staffs.Where
                       (ss => ss.StaffId == staffId)).Select(sec=>sec.SectionId);

但它不起作用,任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

  

在这里我知道StaffId,我需要获得所有的SectionIds   相应的工作人员

List<int> sectionIds = dataEntities.Sections
    .Where(se => se.Staffs.Any(st => st.StaffId == staffId))
    .Select(se => se.SectionId)
    .ToList();