2016-08-11 3 views
1

私はlinqクエリを書いてテーブルから詳細を取得しています。それぞれclientIDに対してdocStatus"notVerified"としたいとします。私は以下のフォームでデータmqc4のcountと他のフィールドを持つクエリによるLinqグループ

clientID clientName Count 
IN1001  Infy   2 

は、これは私がしようとした以下のものですしたい照会した後

ID  clientId clientName  empID  docStatus 
1  IN1001 Infy   100  Verified 
2  IN1001 Infy   101  notVerified 
3  IN1001 Infy   102  notVerified 

を次のように

私のテーブル構造があります。私はカウントを得ることができるが、どこに私の下のクエリの条件を置く必要があります。

var noofRecords = (from c in db.ts_upld_doc 
        group c by c.upld_docid into grouping 
        select new 
        { 
         key = grouping.Key, 
         Count = grouping.Count() 
        }); 
return noofRecords.Count(); 

ありがとうございます。

+0

'upld_docid'は何ですか?あなたのクエリは混乱を招く提供されたテーブルと一致しません。 – user3185569

+0

上記の表のIDはupld_docidです。ご不便おかけしてすみません。 –

答えて

1

ます:あなたは、レコードの数ではなく、財産、あなたが期待する結果を得るにはgrouping.Count()

に設定され、あなたが次のことを行う必要がありますカウントを返していますグループ化の前にwhere句(除外する項目をグループ化する理由)。次に、出力を指定したい場合は、clientIDclientNameの両方をグループ化するのが最も簡単です。

上記のクエリでは、upld_docidID)フィールド(データの一意のフィールド)でグループ化しています。つまり、グループ化しなかったかのように、すべてのグループのサイズは1です。

は、クエリの下を参照してくださいあなたが欲しいものを行う必要があります。

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by new { c.clientID, c.clientName } into grouping 
        select new 
        { 
         ClientId = grouping.Key.clientID, 
         ClientName = grouping.Key.clientName, 
         Count = grouping.Count() 
        }).ToList(); 
+0

スーパーは正常に動作します。ありがとうございます –

+0

@NIRANJANG - それはあなたのために働いたのですか? –

+0

はい、私にとってうまくいきます。私はnoofRecordsをdatalayerからコントローラーに送る必要があります。適切な公開リスト getdetails {上記のクエリとnoofRecords}は間違っていませんか? –

0

あなたは、複数の場所で一つの選択肢をどこに置くことができます。

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by c.upld_docid into grouping 
        select new 
        { 
         key = grouping.Key, 
         Count = grouping.Count() 
        }); 

return noofRecords.Count(); 

注意するの!あなたは場所にどのようなおそらく

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by new { c.clientId , c.clientName } into grouping 
        select new 
        { 
         ClientId = grouping.Key.clientId, 
         ClientName = grouping.Key.clientName, 
         Count = grouping.Count() 
        }); 

return noofRecords.ToList(); 
+0

クエリは正常に動作していますが、アプローチはnoofRecords.Count()です。正しいものではありません。もう1つの行をdbに追加し、以下のような結果を得ました[0] {key = IN1001、count = 2}。 [1] {key = IN1001、count = 1} –

+0

私は結果をclientIDにしたいclientName各クライアントidの数 –

+0

@NIRANJANGこれはBe Awareセクションで述べたとおりです。私は 'where'節をどこに置くべきかという疑問に答えました。編集した回答を確認してください。 – user3185569

関連する問題