2016-05-18 6 views
0

新しい収益を選択します。LINQ私はこのようになりますクエリを持ってObjectMaterializer

 var matches = (from das in dc.GetTable<datos_amef_secuencia>() 
          where das.ID_SUBETAPA == IDSubStage 
          group das by das.AMEF_MODO_FALLA into gamf 
          select new{ MODODEFALLA = gamf.Select(das => das.AMEF_MODO_FALLA), 
             CONTEOMODODEFALLA = gamf.Count()}).ToList(); 

クエリ自体は、私は変数内の情報を使用しようとするたびに問題がradicates、「マッチ」を私は必要な情報を持っています私は "MODODEFALLA" を印刷するメッセージボックスを使用する場合、例えば、:

System.Data.Linq.SqlClient.Implementation.ObjectMaterializer<System.Data.SqlClient.SqlDataReader>.Convert<string> 

 foreach(var element in matches) 
     { 
      MessageBox.Show(element.MODODEFALLA.ToString()); 
     } 

それはこのような何かを返します

私はいくつかの方法でクエリの結果を表示しようとしましたが、動作するメソッドは.Singleですが、リストの1つのアイテムしか返しません。特定の状況で複数のアイテムがあります。

ご協力いただければ幸いです。

ありがとうございます。

答えて

1

MODODEFALLAは、アイテムのコレクションように見える - あなたはは、基になる型は、あなたがそれを反復またはその上に他のLINQのメソッドを呼び出すことができます限り、何であるかケアいけません。

一つの選択肢ではなく、コレクションにToStringを呼び出そうとのコレクションを反復処理することです:

foreach(var element in matches) 
    { 
     foreach(var item in element.MODODEFALLA) 
      MessageBox.Show(item.ToString()); 
    } 

またはstring.Joinを使用して単一の文字列にコレクションを投写:

foreach(var element in matches) 
    { 
     MessageBox.Show(string,Join("; ", element.MODODEFALLA)); 
    } 
+0

ありがとうございました!あなたは非常に簡単に問題にアプローチすることができます、それは完璧に動作します。私はLINQにはかなり新しいです。 – wicho91

関連する問題