2017-04-21 93 views
-1

如何從ParentProductsList列表中選擇特定項目?我嘗試這顯示錯誤不能隱式地將類型'System.Linq.IQueryable'轉換爲'System.Linq.IQueryable'。存在明確的轉換,你是否缺少演員?不能隱式轉換類型「System.Linq.IQueryable <string>」顯式轉換exsits(你是否缺少一個轉換?))

[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是一個字符串。我試圖根據聯盟的狀態過濾單個ParentProducts,並選擇它的p.LongName屬性。 – shermanb

回答

0

ParentProductLists的類型爲IQueryable<AoaUserDefinedVwGetAOAPlusProducts>。你的代碼執行SelectLongName返回IQueryable<string>,你試圖分配回ParentProductLists這兩種類型之間沒有隱式轉換,因此錯誤。 嘗試將Select的返回值分配給新變量。

+0

我想將我的查詢結果分配給我的視圖模型以便在我的視圖中進行渲染。 – shermanb

+0

謝謝你的例子,以及讓我清楚瞭解我做錯了什麼。 – shermanb

0

本質上它與安迪羔羊已經給出的答案是一樣的,但是有一個示例代碼來澄清。

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

如果您想過濾ParentProductLists,則必須刪除Select語句。

ParentProductLists = ParentProductLists.Where(p => p.Affiliate == "MN"); 
相關問題