Linq to sql linq2sql,通过关系实现一对多

Linq to sql linq2sql,通过关系实现一对多,linq-to-sql,Linq To Sql,我有 组织单位, OrgUnitJobs, 员工, OrgUnitJobEmployee(在这种情况下,此项可能显得多余,仅供参考) 桌子 组织单位在OrgUnitJobs(1..n)中定义了作业 员工(也可以有多个作业)在OrgUnitJobEmployee表中定义了作业。 而且员工在OrgUnitJobs表中有一个PrimaryJob(1..1),那么我如何获得该组织单元中所有主要工作的员工的列表呢 我使用的是LINQ2SQL ORM,因此我有一个OrgUnit分部类,我希望能够在该分部OR

我有 组织单位, OrgUnitJobs,
员工, OrgUnitJobEmployee(在这种情况下,此项可能显得多余,仅供参考) 桌子

组织单位在OrgUnitJobs(1..n)中定义了作业 员工(也可以有多个作业)在OrgUnitJobEmployee表中定义了作业。 而且员工在OrgUnitJobs表中有一个PrimaryJob(1..1),那么我如何获得该组织单元中所有主要工作的员工的列表呢

我使用的是LINQ2SQL ORM,因此我有一个OrgUnit分部类,我希望能够在该分部ORM类中获取此员工列表,而无需编写另一个查询或linq select。 我只是不想去我的OCRepository类,在那里写一个GetEmployeeListForOrgUnit(orgUnitId),听起来不对。

检查以调整第一个查询中包含的内容。这意味着它将执行一个联接,而不是N个子查询

在您的情况下,类似于:

DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Job>(j => j.PrimaryEmployees);
dbContext.LoadOptions = dlo;
DataLoadOptions dlo=newdataloadoptions();
dlo.LoadWith(j=>j.PrimaryEmployees);
dbContext.LoadOptions=dlo;

您能否澄清“主要工作”是如何定义的?是外键吗?还是一点领域?好吧,我的一个朋友帮了忙,我们找到了解决办法。。。Jobs是该OrgUnit的所有Jobs的列表,PrimaryEmployees通过“Primary Job”属性链接员工。public IEnumerable DirectEmployees(){返回this.Jobs.SelectMany(j=>j.PrimaryEmployees);}