[英]Entity Framework - joining multiple record to one record
我有一個名稱為A的表是主表,另一個名稱為B的表是明細表
在A和BI中有以下記錄:
一張桌子:
Id Name Family
-------------------------
1 Ebrahim Golkhani
2 Javad Nasiri
在B表中:
AId FactorName Value
------------------------
1 BaseSalary 1000
1 Tax 10
1 Insurance 20
2 BaseSalary 2000
2 Tax 50
2 Insurance 30
我想這樣檢索數據:
Name Family BaseSalary Tax Insurance ....
--------------------------------------------------------
Ebrahim Golkhani 1000 10 20
Javad Nasiri 2000 50 30
表b中的記錄是動態的,這意味着因子名稱不是靜態的。
我想在實體框架中實現這一點。
tableA.Join(TableB,x=>x.Aid,y=>y.Aid, (x,y) => new { name = x.name,family = x.family,
BaseSalary = y.Where(x.FactorName=="BaseSalary").First().Value,
Tax = y.Where(x.FactorName=="Tax").First().Value,
Insurance = y.Where(x.FactorName=="Insurance").First().Value
//.....
}).ToList()
你可以試試看
var results = from g in tab2.GroupBy(k => k.AId)
join t1 in tab1 on g.Key equals t1.Id
select new
{
t1.Name,
t1.Family,
BaseSalary = g.SingleOrDefault(c=>c.FactorName.Equals("BaseSalary")).Value,
Insurance = g.SingleOrDefault(c => c.FactorName.Equals("Insurance")).Value,
Tax = g.SingleOrDefault(c => c.FactorName.Equals("Tax")).Value,
};
請注意 ,這不是驗證表中的null,我留給您添加這些驗證
附有工作樣品 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.