2016-09-27 57 views
0

私は外出するために頭を打ちたい私は以下、IEnumerableSystem.Collections.Generic.Listを変換することができないんだけどその中で、この問題の私のコードです:私は、アプリケーションを実行するとタイプ 'System.Collections.Generic.List`1のオブジェクトをキャストできません[<> f__AnonymousType6`65 [System.String、System.Decimal、System.Nullable`1

IEnumerable<PY_History_TransactionTAB> FilteredReport; 

var ReportData = db.PY_History_TransactionTAB 
       .Where(x => x.SystemCode == SysCode) 
       .GroupBy(x => x.EmployeeCode); 

FilteredReport = (IEnumerable<PY_History_TransactionTAB>)ReportData.Select(x => new 
      { 
       EmployeeCode = x.Key, 
       H_SalaryDays = x.Sum(y => y.H_SalaryDays ?? 0), 
       H_NET_Overtime = x.Sum(y => y.H_NET_Overtime), 
       H_Overtime_Amount = x.Sum(y => y.H_Overtime_Amount), 
       H_SL_Breakup1 = x.Sum(y => y.H_SL_Breakup1 ?? 0), 
       H_SL_Breakup2 = x.Sum(y => y.H_SL_Breakup2 ?? 0), 
       H_SL_Breakup3 = x.Sum(y => y.H_SL_Breakup3 ?? 0), 
       H_OT_Allowance1 = x.Sum(y => y.H_OT_Allowance1 ?? 0), 
       H_OT_Allowance2 = x.Sum(y => y.H_OT_Allowance2 ?? 0), 
       H_OT_Allowance3 = x.Sum(y => y.H_OT_Allowance3 ?? 0), 
       H_OT_Allowance4 = x.Sum(y => y.H_OT_Allowance4 ?? 0),     
       H_OT_Allowance5 = x.Sum(y => y.H_OT_Allowance5 ?? 0)     
      }).ToList(); 

、それはFilteredReport変数への代入の時点で、実行時例外System.InvalidCastExceptionをスローし、と言って:

{"Unable 'System.Collections.Generic.List'型のオブジェクトをキャストするには [System.String、System.Decimal、System.Nullable 1[System.Decimal],System.Nullable 1 [System.Decimal]、 System.Decimal、System.Decimal、System.Decimal、System .Decimal、System.Decimal、System.Decimal、System.Decimal、 System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal 、System.Decimal、System .Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、 System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimalシステム。 Decimal、 System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、 System.Decimal、System.Decimal、System.Decimal、System.Decimal、System .Decimal、System.Decimal、System.Decimal、 System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、 System.Decimal、System.Decimal、System .Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal、 System.Collections と入力するには、System.Decimal、System.Decimal、System.Decimal、System.Decimal、System.Decimal]] 'を使用します。 Generic.IEnumerable`1 [HrAndPayrollSystem.Models.PY_History_TransactionTAB]」。 "}

だから、私は何を取得することは、私は右つもりはないということです、私は私が得るために何をすべき、正しい方法を見つける必要がありますこの問題を解消するか、ListIEnumerableに変換する正しい方法は何ですか?どんなヘルプも深く感謝します、ありがとうございました!

更新:

[OK]を、ルネ・フォークトの答えは、上記の問題のために正しいですが、私は同じポイント格言で別の例外System.NotSupportedExceptionが発生します。

エンティティまたは複合型 'HrAndPayrollSystem.Models.PY_History_TransactionTAB' は、LINQ to Entitiesクエリでは構築できません。

どうすれば解決できますか?

答えて

1

List匿名のタイプを返すのがその理由です。したがって、List<anonymousType>IEnumerable<HrAndPayrollSystem.Models.PY_History_TransactionTAB>とは全く異なるタイプです。

だからあなたのような何かにあなたのSelectの呼び出しを変更する必要があります。今、返されたリストは、IEnumerable<PY_History_TransactionTAB>を実装タイプList<PY_History_TransactionTAB>である

FilteredReport = (IEnumerable<PY_History_TransactionTAB>)ReportData.Select(x => 
    new PY_History_TransactionTAB // specify type!! 
    { 
     EmployeeCode = x.Key, 
     // shortened for brevity... set properties appropriatly 
    }).ToList(); 

+0

ご回答いただきありがとうございます。だから、これは非常に正しく聞こえる、今私は別の例外が発生しました、私の更新された質問を参照してください。 –

+0

@BilalAhmed、この回答があなたの問題を解決した場合、それは受け入れられるべきです。別の問題がある場合は、別の質問をしてください –

+0

@StephenMuecke私の悪い! –

関連する問題