Entity framework 4 如何在entityframework LINQ方法语法中应用内部联接?

Entity framework 4 如何在entityframework LINQ方法语法中应用内部联接?,entity-framework-4,inner-join,Entity Framework 4,Inner Join,如何在实体框架方法语法中应用此查询 select company_id, country_id from companies, departments where companies.company_id == departments.company_id and department.departmentId = 10; 到目前为止,我已经: var company = context.companies .Where(com => com.Departments

如何在实体框架方法语法中应用此查询

select company_id, country_id from companies, departments where companies.company_id == departments.company_id and department.departmentId = 10;
到目前为止,我已经:

var company = context.companies
    .Where(com => com.Departments
        .Contains(context.departments
            .Where(dep => dep.department_id==_user.Department)
            .FirstOrDefault()
        )
    )
    .Select(com => new { com.company_id, com.Country })
    .FirstOrDefault();

使用基于方法的语法,这可以简单到:

var company = context.Companies
    .Where(x => x.Departments
        .Any(x => x.department_id == _user.Department)
    )
    .Select(x => new { x.company_id, x.Country });

这假设您的表是用外键设置的,外键为每个
公司
提供一个
部门
对象的列表。这在很大程度上取决于您的数据结构。

我编辑了查询,因为
contains
方法不接受lambda表达式,但它接受object,无论如何,我们不能使用
join
方法执行相同的查询吗?对不起,
Contains
应该是
Any
为什么需要使用
Join
?只是因为我想知道如何以不同的方式做同一件事这是以不同的方式做同一件事,你说的是以相同的方式做同一件事:)