2017-03-14 76 views
0

我需要這些下面的SQL行轉換爲LINQ查詢:轉換SQL子查詢的LINQ C#

select 
( select count(*) 
    from vpassSlipApp a 
    where a.statusID=0 and a.apprvEIC='xxxxx' 
) as pass_slip_app 
, 
( select count(*) 
    from vPtlosApp a 
    where a.Tag=3 and a.approveEIC='xxxxx' 
) as ptlos_app 

我想這樣做是這樣的:

var list = (new { 
     pass_slip_app = from r in db.vpassSlipApps 
         where r.statusID == 0 
         where r.apprvEIC == approvingEIC 
         select r.EIC.Count(), 
     ptlos_app = from g in db.vPtlosApps 
         where g.Tag == 3 
         where g.approveEIC == approvingEIC 
         select g.controlNo.Count() 
        } 
); 
+0

你到目前爲止嘗試過什麼? – Tatranskymedved

+0

我在db.vpassSlipApps 想着做這樣的... VAR名單=(新 { pass_slip_app =從r其中r.statusID == 0 其中r.apprvEIC == approvingEIC 選擇r.EIC。 COUNT() ,ptlos_app =從克db.vPtlosApps 其中g.Tag == 3 其中g.approveEIC == approvingEIC 選擇g.controlNo.Count() }) –

+1

@Tatranskymedved:以後,請做不添加或編輯絨毛,如[問候](https://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)或[編輯標記] (https://meta.stackexchange.com/questions/ 127639 /當編輯更新適當在帖子中) –

回答

0

你確實有必要一個列表?因爲sql查詢只返回1條記錄。 這是將該記錄作爲單個對象返回的查詢。

var x = new { 
      pass_slip_app = vpassSlipApp.Count(a=>a.statusID=0 && a.apprvEIC='xxxxx'), 
      ptlos_app = vPtlosApp.Count(a=>a.Tag=0 && a.approveEIC='xxxxx') 
     }