2017-05-05 72 views
-5

請耐心等待我我是新來的linq和有一個錯誤,我不明白任何幫助將不勝感激的幾個問題的問題。不能隱含轉換類型System.Collections.GenericList <AnonymousType#1>

  1. 我在我的問題的標題中收到的錯誤。
  2. 我的childproduct變量每個單獨的字符都會返回,我希望它們是productId和Childtext參數的字符串版本。

代碼:

public class AOAPlusChildModel 
{ 
    public List<string> LongName { get; set; } 
    public List<string> Text { get; set; } 
    public List<string> ProductId { get; set; } 

    public static List<AOAPlusChildModel> GetChildProducts() 
    { 
     List<AOAPlusChildModel> cp = new List<AOAPlusChildModel>(); 

     List<AoaUserDefinedVWGetAOAPlusProducts> ChildProductsLists = AoaSvcClient.Client.Context.AoaUserDefinedVWGetAOAPlusProductss.Where(a => a.MasterProductFlag == false && a.Affiliate == "VA").ToList(); 

     var childProducts = ChildProductsLists.SelectMany(p => p.LongName, (id, childtext) => 
               new { ProductId = id.ProductId, Text = childtext }).ToList(); 
     cp = childProducts.ToList();        

     return cp; 
    } 
} 
+0

對不起不知道是否也貼我的完整的問題我childProducts可變回報我的產品編號,測試參數一次一個承租人。 – shermanb

+0

至於第二個問題是什麼?AoaUserDefinedVWGetAOAPlusProducts?您需要顯示該類結構 –

+0

AoaUserDefinedVWGetAOAPlusProducts是一個Web服務ProductId數據類型很長文本是字符串數據類型 – shermanb

回答

2

你的變量cpList<AOAPlusChildModel>但LINQ查詢投影匿名類型。而不是創建一個新的匿名類型的創建一個新的AOAPlusChildModel

return ChildProductsLists.SelectMany(p => p.LongName, 
            (id, childtext) => 
             new AOAPlusChildModel { 
              ProductId = id.ProductId, 
              Text = childtext }).ToList(); 

原因下面的錯誤是在執行ChildProductsLists.SelectMany(p => p.LongName)基本上現在返回的字符串的集合 - 這個集合你想分配爲字符串新的AOAPlusChildModel對象不包含string屬性,但List<string>屬性。

我覺得你的模型應該是這樣的:

public string LongName { get; set; } 
public string Text { get; set; } 
public string ProductId { get; set; } 
+0

謝謝你現在我收到我的參數錯誤無法將隱式轉換類型long轉換爲System.Collections.GenericList for ProductId。和相同的childtext,但轉換類型是字符,我在哪裏錯了嗎? – shermanb

+0

@shermanb - 你的模型結構很奇怪 - 看起來每個「AOAPlusChildModel」對每個屬性都應該有一個值,而不是一個列表。你確定你希望它成爲一個列表嗎? –

+0

@shermanb,你在一點上只是錯了:你沒有看你自己的源代碼,也沒有花一點努力去試圖理解源代碼(和錯誤信息)告訴你什麼。 Linq查詢訪問_AoaUserDefinedVWGetAOAPlusProducts_對象('AoaUserDefinedVWGetAOAPlusProducts.ProductID')的產品ID(這是一個很長的時間(由錯誤消息告知) - 並且希望將這個長分配給您聲明爲「AOAPlusChildModel.ProductID」的對象輸入'List '。現在,你做錯了什麼...? – elgonzo

相關問題