2017-03-20 16 views
1

ここでは、第2クエリの結果に最初のクエリ(1列)の出力を結合して1つの結果セットを取得します。どのように私はそれらをマージすることができます(必要に応じてCONCATは動作しません例えば:VAR QUERY2 = query.concat(Query1を);)。1つのキー列で2つのlinqクエリを結合して1つの結果セットを取得する

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

を編集しましたが、今はこのエラーを出しています。 "タイプ 'ManManagementSystem.Models.PdPpAppCourseModel'は、単一のLINQ to Entitiesクエリ内で2つの構造的に互換性のない初期化で表示されます。同じクエリが2つの場所で初期化されますが、プロパティは同じ順序で設定されます。 – Sudesh

関連する問題