2017-04-19 65 views
0

我宣佈我的.cs頁面模型無法轉換AnonymousType#1 TI的IEnumerable

public class InstrumentDetails 
{ 
    public long PullNo { get; set; } 
    public string Description { get; set; } 
    public int New { get; set; } 
    public int LN { get; set; } 
    public int PR { get; set; } 
    public int Any { get; set; } 
} 

這樣的方式,我正在檢索數據後:

IEnumerable<InstrumentDetails> instrumentdetails = (from p in NemcDb.tblPulls 
    join 
    pi in NemcDb.tblPullInstruments 
    on 
    p.PullId equals pi.PullId 
    join 
    i in NemcDb.tblInstruments 
    on 
    pi.InstrumentCode equals i.InstrumentCode 
    select new 
    { 
     PullNo = p.PullNo.Value, 
     InstrumentType = i.Description, 
     New = pi.NewQuantity, 
     LN = pi.LNQuantity, 
     PR = pi.UsedQuantity, 
     Any = pi.AnyQuantity 
    }).Where(i => i.PullNo.ToString() == item); 

但它給我的錯誤

無法將 'System.Linq.IQueryable < AnonymousType#1>' 到「System.Collections.Generic.IEnumerable <>'。一個顯式轉換存在(是否缺少強制轉換?)

我在哪裏錯了?......我無法得到它通過....請幫助。

+1

在'Where'後面調用'ToList'或'ToArray'。 –

+0

@KennethK。這不會改變任何事情。 – Servy

+0

它沒有工作......無論如何感謝您的幫助 – Arka

回答

0

答案是:

  IEnumerable<InstrumentDetails> instrumentdetails = (from p in NemcDb.tblPulls 
                  join 
                  pi in NemcDb.tblPullInstruments 
                  on 
                  p.PullId equals pi.PullId 
                  join 
                  i in NemcDb.tblInstruments 
                  on 
                  pi.InstrumentCode equals i.InstrumentCode 
                  select new InstrumentDetails 
                  { 
                   PullNo = p.PullNo.Value, 
                   InstrumentType = i.Description, 
                   New = pi.NewQuantity, 
                   LN = pi.LNQuantity, 
                   PR = pi.UsedQuantity, 
                   Any = pi.AnyQuantity 

                  }).Where(i => i.PullNo.ToString() == item).ToList(); 

    } 

我多傻啊............

+1

其他人正確地回答了你的問題,而不是給他們信用,你重新回答你自己的完全相同的信息。 – Aaron

+0

10秒不同答案之間,可能是巧合,投票薩米回答'因爲它解釋了問題的原因 – bradbury9

+0

@Aaron此答案已*張貼*其他答案之前。 – Servy

3

InstrumentDetails類型的對象,你不告訴,你創建一個匿名類型。將select new { ...更改爲select new InstrumentDetails { ...,然後還請最後調用ToList(),ToEnumerable()ToArray()以便查詢實際運行。

相關問題