2017-03-20 15 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

相關問題