簡體   English   中英

實體框架-將多條記錄連接到一條記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM