如何在一个查询中将两个linq组合到实体查询?

时间:2013-10-21 10:52:19

标签: linq c#-4.0 join group-by linq-to-entities

  var CJTDebTransaction = from d in db.DebtorTransactions
                                 join c in db.CarJackaTrackas on d.ProductID equals c.pkfCjtID
                                 join a in db.Agents on c.AgentID equals a.pkfAgentID
                                 join s in db.SalesReps on c.SalesRepId equals s.pkfSrID
                                 where d.TransTypeID==1 && d.Product==1
                                 select new { d.Amount, d.TransTypeID, Name=a.Name.Trim(), a.pkfAgentID,s.pkfSrID,salesrepName=s.Name} into debtRec
                                 group debtRec by new { debtRec.TransTypeID, debtRec.Name, debtRec.pkfAgentID,debtRec.salesrepName,debtRec.pkfSrID} into debtRecGroup
                                 orderby debtRecGroup.Key.Name
                                 select new 
                                 { 
                                  Sum= debtRecGroup.Sum(model=>model.Amount),
                                  TransTypeId=debtRecGroup.Key.TransTypeID ,
                                  AgentId=debtRecGroup.Key.pkfAgentID,
                                  AgentName=debtRecGroup.Key.Name,
                                  SalesrepId=debtRecGroup.Key.pkfSrID,
                                  SalesRepName=debtRecGroup.Key.salesrepName 
                                 };



            var WntyDebTransaction = from d in db.DebtorTransactions
                                     join w in db.Warranties on d.ProductID equals w.Id
                                     join a in db.Agents on w.fldAgentID equals a.pkfAgentID
                                     join s in db.SalesReps on w.fldSrId  equals s.pkfSrID
                                     where d.TransTypeID == 1 && d.Product == 0
                                     select new { d.Amount, d.TransTypeID, Name=a.Name.Trim(), a.pkfAgentID, s.pkfSrID, salesrepName = s.Name } into debtRec
                                     group debtRec by new { debtRec.TransTypeID, debtRec.Name, debtRec.pkfAgentID, debtRec.salesrepName, debtRec.pkfSrID } into debtRecGroup
                                     orderby debtRecGroup.Key.Name
                                     select new
                                     {
                                         Sum = debtRecGroup.Sum(model => model.Amount),
                                         TransTypeId = debtRecGroup.Key.TransTypeID,
                                         AgentId = debtRecGroup.Key.pkfAgentID,
                                         AgentName = debtRecGroup.Key.Name.Trim(),
                                         SalesrepId = debtRecGroup.Key.pkfSrID,
                                         SalesRepName = debtRecGroup.Key.salesrepName 
                                     }

我需要在一个查询中获取输出,我是linq to entity的新手。我需要的结果如下: - AgentName SalesRepName Debit Total(产品的总金额== 0)信用总额(产品的总金额== 1)未偿还总额(借方总额和贷方总额之间的差额)。任何建议都会很明显。提前谢谢:)

0 个答案:

没有答案