2017-03-20 14 views
1

在这里,我想将第一个查询(一列)输出到第二个查询的结果以获得一个结果集。我怎样才能将它们合并(根据需要CONCAT不起作用例如:VAR QUERY2 = query.concat(QUERY1))。在一个关键列上加入两个linq查询以获得一个结果集

var query = (from PP in _db.paymentPlans 
        join APP in _db.Applications on PP.applicationID equals  APP.ApplicationId 
        join C in _db.Courses on APP.courseID equals C.courseID 
        where PP.active == true && APP.agentID == agentID 
        orderby C.courseID ascending 
        group new {C,PP} by new {C.courseID} into totalRecievable 
         select new PdPpAppCourseModel 
        { 
         courseID = totalRecievable.Key.courseID,        
         totalAmount = totalRecievable.Sum(x => x.PP.totalAmount) 
        }).ToList(); 


      var query1=(from PD in _db.paymentDetails 
        join PP in _db.paymentPlans on PD.paymentPlanID equals PP.paymentPlanID 
        join APP in _db.Applications on PP.applicationID equals APP.ApplicationId 
        join C in _db.Courses on APP.courseID equals C.courseID 
        where PP.active == true && APP.agentID == agentID 
        orderby C.courseID ascending 
        group new { C,PD } by new { C.courseID, C.cricosCode, C.courseName } into paymentsCourseWise 

        select new PdPpAppCourseModel 
        { 
         courseID = paymentsCourseWise.Key.courseID, 
         cricosCode = paymentsCourseWise.Key.cricosCode, 
         courseName = paymentsCourseWise.Key.courseName, 
         paidAmount = paymentsCourseWise.Sum(x => x.PD.paidAmount) 

        }).ToList(); 

回答

0

您可以加入QUERY1和查询这样

var result = (from q1 in query1 
      join q in query on q1.courseID = q.courseID 
      select new PdPpAppCourseModel 
      { 
       courseID = q1.Key.courseID, 
       cricosCode = q1.Key.cricosCode, 
       courseName = q1.Key.courseName, 
       paidAmount = q1.Sum(x => x.PD.paidAmount), 
       totalAmount = q.totalAmount 

      }).ToList(); 
+0

喜非常感谢你的时间和分享知识。 但是不幸的是我得到错误 “无法创建类型为'studentAgentManagementSystem2016.Models.PdPpAppCourseModel'的常量值。在此上下文中只支持基本类型或枚举类型。” 有什么建议吗? – Sudesh

+0

它可能与此问题有关:http://stackoverflow.com/questions/18929483/unable-to-create-a-constant-value-of-type-only-primitive-types-or-enumeration-ty。我编辑了我的回答 – TriV

+0

但现在它给了这个错误; “类型'ManagementSystem.Models.PdPpAppCourseModel'出现在单个LINQ to Entities查询中的两个结构不兼容的初始化中。一个类型可以在同一个查询中的两个地方进行初始化,但只有在两个地方都设置了相同的属性,属性按照相同的顺序设置。“ – Sudesh

相关问题