2017-07-20 11 views
-1

を使用して、私のTYPE_IDはintであり、int型である必要があり、それを変更icant、選択NEW INT私は、次のような何かをすることが可能に得ることができますどのようにLINQ

type_id=(from t in DB.t_device_type 
     where t.device_type=="PLC" 
     select new int 
     { 
      (what should be here)=t.type_id 
     }); 
+0

新しい「int」は作成しません。あなたが望む 'int'値を持つカラムを選択すると、クエリーから単一の' int'値を得るために、 'First'や' Sum'のようないくつかの集計関数を実行する必要があります。あなたがあなたのDBから抜け出そうとしているint値とカラムのタイプのような関連情報を正確に説明してください。 – juharr

+0

私はdownvoteするつもりはありませんが、この質問を書き直す必要があります。 https://stackoverflow.com/help/mcveを参照してください。 – Trey

答えて

3

私はあなたが特定のデバイスタイプのタイプIDを選択したいと考えている(クエリ構文は、単一または最初の結果を選択サポートしていないので、代わりに二つの異なる構文を混合する、私はここでメソッドの構文となるだろう):

type_id = DB.t_device_type 
      .Where(t => t.device_type == "PLC") // filter entities 
      .Select(t => t.type_id)    // select field which you need 
      .FirstOrDefault();     // get single result 

このように、typd_idはすでに必要なタイプです。ここに投影する必要はありません。

+1

ありがとうございました – mortezasol

4

intは、プリミティブデータ型です。コンストラクタを使う必要はありません。 のプロパティはありません。

あなただけintさ自体値を選択することができます

from t in DB.t_device_type 
where t.device_type=="PLC" 
select t.type_id 

注:は何がしたいことはただ一つのintなくintのコレクションであるかもしれないことをあなたの変数名を意味を。そうであれば、このコレクションから必要なものを選択することになります。 1 返す必要がある場合

(from t in DB.t_device_type 
where t.device_type=="PLC" 
select t.type_id).Single() 

かを、しかし、あなたは何も返されないことをイベントで0をしたい:だけと正確に一つがこれまでに返却しなければならない場合

たとえば、あなたがこれを行う可能性があります:

(from t in DB.t_device_type 
where t.device_type=="PLC" 
select t.type_id).SingleOrDefault() 

追加オプションは、.First()例えばFirstOrDefault()として、存在します。使用するものは、達成したい特定の動作によって異なります。

+2

'type_id'は' int'です。これは 'IEnumerable ' –

+0

を返します。@GiladGreen:*その変数にはintが代入されていますか?名前はそれを暗示していますが、コードではそれを示していません。いずれにしても、私はちょうどその場合に編集します。 – David

+0

OPが言うように 'FirstOrDefault()'が必要です* my type_idはint * – Rahul

関連する問題