Kann nicht implizit konvertiert Typ 'System.Sammlungen.Generisches.List<T>' zu 'System.Linq -.IQueryable<T>'
Ich versuche eine Abfrage zu erstellen in meinem domain-service (VS 2010 Silverlight-Business-Anwendung), gibt die Ergebnisse aus der Qualitätsprüfung in den Lesungen, die herauskam als einen bestimmten Wert, meine Datenbank ist eingerichtet:
Locations
a) Inspections
b) InspectionItems
c) InspectionReadings
a) Areas
b) Inspections
c) InspectionItems
d) InspectionReadings
So, wie Sie sehen können, gibt es die Inspektion Lesungen für Standorte, die unter Gebiete und Standorte. Ich habe eine POCO Namen genannt StatusList:
public class StatusList
{
[Key]
[Editable(false)]
public Guid ID { get; set; }
public string LocationName { get; set; }
public DateTime LastInspectionDate { get; set; }
public string Status { get; set; }
}
die ich benutze, um die Ergebnisse der Abfrage:
public IQueryable<StatusList> GetLocationStatus()
{
var status = (from location in this.ObjectContext.Locations
where location.InspectionReadings.Status == value
orderby a.DateTaken
select new LocationStatusList()
{
ID = a.ID,
LocationName = d.Name,
}).ToList<StatusList>();
return status;
}
leider, es ist die Rückkehr den Fehler im Titel und ich habe keine Ahnung, warum die Liste ist eindeutig ein Punkt der Liste, und ich habe umgewandelt, die Ergebnisse
.ToList<LocationStatusList>
Warum würden Sie wieder eine
Ist, dass LINQ to SQL oder LINQ to Enities? Wie es scheint, die letztere zu mir.
Es ist LINQ to Entitäten - mistagged sorry!
IQueryable
im GetLocationStatus
? IQueryable
ist (informell gesprochen) für die Darstellung zählbare Dinge in der Ferne. Sie erstellt eine lokale Liste zu Ihrem Ergebnis. Das ist einfach ein IEnumerable
.Ist, dass LINQ to SQL oder LINQ to Enities? Wie es scheint, die letztere zu mir.
Es ist LINQ to Entitäten - mistagged sorry!
InformationsquelleAutor xhedgepigx | 2012-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist genau weil, die Sie angerufen haben
ToList()
. Sie haben erklärt, dass Sie zurückgebenIQueryable<LocationStatusList>
, undList<T>
nicht umsetzenIQueryable<T>
.Optionen (wählen Sie eine):
ToList
nennenIEnumerable<LocationStatusList>
,IList<LocationStatusList>
oder möglicherweiseList<LocationStatusList>
Call
AsQueryable()
nachToList()
:Beachten Sie, dass Sie nicht brauchen, die Typ-argument in der
ToList
nennen - es ist der gleiche, den der compiler würde folgern, sowieso.InformationsquelleAutor Jon Skeet