我想在LINQ查询中连接3个表以从所有3个表中获取数据。下面是桌子方案的图像:如何使用LINQ连接3个表
查询应选择:SewagePlantName,公司名称和职务
此外,我需要将SewagePlantId限制到给定为ID的列表:
var sewagePlantIds = UnitOfWork.GetAll<UserGroup>()
.Where(group => group.Id == webAppPrincipal.GroupId)
.SelectMany(group => group.SewagePlantId).Select(sewageplant => sewageplant.Id).ToList();
我对加入3表的顺序有困难,并且在哪里/如何限制SewagePlantId到给定列表。
请帮忙。谢谢你,马努
这是一个糟糕的设计。在*实体*之间使用*关系*,让ORM做任何需要的连接。 'SewagePlant'应该有'公司'的财产。 'Company'应该有'Duties'集合。加载一个'公司',您可以访问所有相关对象 –
但是在这种情况下,SewagePlant有n家公司,而不是相反。 – Manu
因此,使它成为一个集合。只是不要*滥用*您的ORM。创建适当的关系,*不要*尝试加入,就像使用SQL一样。 –