0

Linq to Entity クエリに問題があります。次のようなリストを返そうとしています:

List<InvoiceReportItem> cancelResults = (List<InvoiceReportItem>)(from cr in model.InvoiceReportItems //join l in model.tblLicences on cr.LicenceAuto equals l.LicenceAuto where cr.Report.Id == id select cr);

しかし、それは私にエラーを与えています:

タイプ >'System.Data.Objects.ObjectQuery 1[LicExpiryNotModel_EF41.Model.InvoiceReportItem]' to > type 'System.Collections.Generic.List1[LicExpiryNotModel_EF41.Model.InvoiceReportItem]' のオブジェクトをキャストできません。

なぜこのエラーが発生するのか、誰にも分かりますか? 私を夢中にさせる!:(

前もってありがとうニール

4

3 に答える 3

3

ToList ()を使用する

List<InvoiceReportItem> cancelResults = 
 (from cr in model.InvoiceReportItems 
  join l in model.tblLicences on cr.LicenceAuto equals l.LicenceAuto where cr.Report.Id == id 
  select cr).ToList();
于 2012-07-27T10:47:29.670 に答える
0

IQueryableanを aにキャストすることはできませんList。代わりに、次のように で.ToList()メソッドを使用します。IQueryable

List<InvoiceReportItem> cancelResults = (from cr in model.InvoiceReportItems).ToList();
于 2012-07-27T10:48:51.310 に答える
0

このようなクエリを実行すると、LINQ は実行を延期し、IQueryable を返します。これにより、必要に応じて将来さらにクエリを実行できます (たとえば、where 句を追加するなど)。IQueryable ジェネリックはリストにキャストできません。他の人が示唆しているように、コードで ToList() を呼び出します

List<InvoiceReportItem> cancelResults = (List<InvoiceReportItem>)(from cr in model.InvoiceReportItems //join l in model.tblLicences on cr.LicenceAuto equals l.LicenceAuto where cr.Report.Id == id select cr).ToList();
于 2012-07-27T10:55:38.850 に答える