Reputation: 1891
I am using Entity Framework in windows application C#, Trying to retrieve data from two entities using DbContext and want to make simple join, but my code breakdown (at var modellst line). My sample code is as below
using (var ctx = new DbEntities())
{
var lst = ctx.AUMaterials.Where(o => o.ServiceRequestTypeId == serviceReqId && o.SSStock.Quantity > 0).ToList();
var modellst = ctx.AUModelMaterials.Where(o => o.ModelId == modelId).ToList();
// here i want to make join on these two list
}
Here in first list thousands of records in AUMaterials entity. And I think it will take to much time to load. Same way in AUModelMaterials entity, Here also thousands of records. But same code works fine in earlier stage.
Upvotes: 0
Views: 1765
Reputation: 856
var results = (from t1 in context.AUMaterials
join t2 in context.AUModelMaterials
on t1.Col1 equals t2.Col1
where t1.ServiceRequestTypeId == serviceReqId && t1.SSStock.Quantity > 0 && t2.ModelId == modelId
select new { t1, t2}).ToList();
Joining on multiple columns
var results = (from t1 in context.AUMaterials
join t2 in context.AUModelMaterials
on new {t1.Col1, t1.Col2, t1.Col3 } equals
new { t2.Col1, t2.Col2, t2.Col3 }
where t1.ServiceRequestTypeId == serviceReqId && t1.SSStock.Quantity > 0 && t2.ModelId == modelId
select new { t1, t2}).ToList();
Upvotes: 1