2017-04-21 143 views
-1

ParentProductsListのリストから特定のアイテムを選択するにはどうすればよいですか?私はこれを試してみますエラーを表示することはできません暗黙のうちに 'System.Linq.IQueryable'を 'System.Linq.IQueryable'に変換します。明示的な変換が存在します。キャストがありませんか?"System.Linq.IQueryableタイプ<string>"を暗黙的に変換できません。明示的な変換が行われます(キャストがありませんか?)

[HttpGet] 
public ActionResult Index() 
{ 
    AOAPlusViewModel AOAPlusViewModel = new AOAPlusViewModel(); 

    IQueryable<AoaUserDefinedVWGetAOAPlusProducts> ParentProductLists =    
    AoaSvcClient.Client.Context.AoaUserDefinedVWGetAOAPlusProductss 
           .Where(a => a.MasterProductFlag == true); 
    if (bool) 
    { 
    ParentProductLists = ParentProductLists.Where(p => p.Affiliate == "MN") 
              .Select(p => p.LongName); 
    } 
}   
+0

おそらく文字列である名前を選択しています。これは、あなたがジェネリック型 'AoaUserDefinedVWGetAOAPlusProducts'の変数に入れているからです。 – Chris

+0

その後にセミコロンを置くべきです。また、変更を選択FirstOrDefault() –

+0

はいp.LongNameは文字列です。アフィリエイトの状態に基づいて個々のParentProductをフィルタリングし、そのp.LongNameプロパティを選択しようとしています。 – shermanb

答えて

0

ParentProductListsは、IQueryable<AoaUserDefinedVwGetAOAPlusProducts>です。あなたはコードSelectLongNameを実行してParentProductListsに割り当てようとしているIQueryable<string>を返します。したがって、これらの2つのタイプの間に暗黙のキャストはありません。 Selectの戻り値を新しい変数に代入してみてください。

+0

自分のビューのレンダリングのために、私のクエリの結果をビューモデルに割り当てたいと思います。 – shermanb

+0

私が間違っていたことを明確に理解してくれてくれてありがとう。 – shermanb

0

Andy Lambは既に説明したのと同じ回答ですが、明確化のためにサンプルコードがあります。

IQueryable<string> LongNameList = ParentProductLists.Where(p => p.Affiliate == "MN") 
               .Select(p => p.LongName); 

フィルタリングされたParentProductListsが必要な場合は、Select文を削除する必要があります。

ParentProductLists = ParentProductLists.Where(p => p.Affiliate == "MN"); 
関連する問題