linq到实体的内部联接

我有一个名为Customer的实体,它有三个属性:

public class Customer { public virtual Guid CompanyId; public virtual long Id; public virtual string Name; } 

我还有一个名为Splitting的实体,它有三个属性:

 public class Splitting { public virtual long CustomerId; public virtual long Id; public virtual string Name; } 

现在我需要编写一个获取companyId和customerId的方法。 该方法应返回与companyId中特定customerId相关的拆分列表。 像这样的东西:

 public IList get(Guid companyId, long customrId) { var res=from s in Splitting from c in Customer ...... how to continue? return res.ToList(); } 

 var res = from s in Splitting join c in Customer on s.CustomerId equals c.Id where c.Id == customrId && c.CompanyId == companyId select s; 

使用Extension methods

 var res = Splitting.Join(Customer, s => s.CustomerId, c => c.Id, (s, c) => new { s, c }) .Where(sc => sc.c.Id == userId && sc.c.CompanyId == companId) .Select(sc => sc.s); 

您可以在visual studio中找到一大堆Linq示例。 只需选择Help -> Samples ,然后解压缩Linq示例。

打开linq示例解决方案并打开SampleQueries项目的LinqSamples.cs

您正在寻找的答案是方法Linq14:

 int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; int[] numbersB = { 1, 3, 5, 7, 8 }; var pairs = from a in numbersA from b in numbersB where a < b select new {a, b}; 

不是100%肯定这两个实体之间的关系,但这里是:

 IList res = (from s in [data source] where s.Customer.CompanyID == [companyID] && s.CustomerID == [customerID] select s).ToList(); IList res = [data source].Splittings.Where( x => x.Customer.CompanyID == [companyID] && x.CustomerID == [customerID]).ToList(); 
 public IList get(Guid companyId, long customrId) { var res=from c in Customers_data_source where c.CustomerId = customrId && c.CompanyID == companyId from s in Splittings_data_srouce where s.CustomerID = c.CustomerID select s; return res.ToList(); }