C# 基于ID从另一个表中获取数据的Linq方法

C# 基于ID从另一个表中获取数据的Linq方法,c#,linq,C#,Linq,我有一个客户表,其中有基本信息名称、地址、邮政编码等。一家公司可以有多个客户。因此,该关系与带有外键的CompanyId的Company表松散相关。要搜索我使用的客户,可以使用以下IQueryable方法: private IQueryable<CustomerModel> MapCustomer(IQueryable<Customer> query) { return (from a in query select new Custome

我有一个客户表,其中有基本信息名称、地址、邮政编码等。一家公司可以有多个客户。因此,该关系与带有外键的CompanyId的Company表松散相关。要搜索我使用的客户,可以使用以下IQueryable方法:

private IQueryable<CustomerModel> MapCustomer(IQueryable<Customer> query)
{
    return (from a in query
            select new CustomerModel
            {
                CompanyId = a.CompanyId,
                CustomerId = a.Id,
                CustomerName = a.Name,
                AddressLine1 = a.AddressLine1,
                PhoneNo = a.TelephoneNumber,
                Postcode = a.PostCode,
                ServiceCompletion = a.ServiceCompleteted,
                ServiceDate = a.ServiceDate
            });
}

问题是我需要能够填充公司名称而不是公司ID。因此,当我得到结果时,我将能够看到公司的名称。我应该怎么做才能得到这些信息?感谢您的帮助

您可以在
companyId
上的
Company
表上
internal join
,然后选择
CompanyName
@EhsanSajjad,我想我需要一个
join
,如果它是SQL,我只需右键
选择Company.Name,Customer.Name从Customer.companyId=Company.Id上的Customer-internal join Company中选择Company.Name。然而,林克却让我步履蹒跚。如果我在等于a.CompanyId的公司中使用了查询中的
,我得到的类名此时无效,无法解析符号CompanyId。所以我的问题是。还有什么吗?@MyCodeSucks,我该怎么跟IQueryable结婚并加入呢?@PaulFrancis你从一个in-query就快到了在a.CompanyId上加入c.CompanyId等于c.CompanyId请看@PaulFrancis
a.CompanyId等于c.CompanyId
return MapCustomer(db.Customers.AsNoTracking().Where(x => x.Id == id)).FirstOrDefault();