我有两个表/实体Users
和Companies
。
两者都是m-n关系。
当我在EDMX中使用这些表并生成POCO时,m-n映射表消失了(似乎因为除了两个PK之外没有任何内容)。
相反,导航属性由EDMX创建,这很好:
user.Companies ... -> gives me all users for that company
和
company.Users ... -> gives me all companies for that user
但是,如果我希望所有没有与之关联的公司的用户怎么办? 如何访问缺失的表以创建正确的连接?
答案 0 :(得分:1)
你应该找到没有公司的用户(如你所说),所以他们的use.Companies.Count应为零,只需将其转换为linq(如下所示):
var withoutCompanyUsers = Users.Where(x=>x.Companies.Count() == 0).ToList();
编辑:关于您的第二个问题:但如果我想要与给定用户无关的所有复印件怎么办?
在这种情况下,您应该找到没有特定用户的公司:
检查公司是否有特定用户:
company.Users.Any(x=>x.ID = givenUserID)
在没有特定用户的情况下获取公司:
var companies = Companies.Where(x=>!x.Users.Any(y=>y.ID == givenUser.ID)).ToList();