我正在尝试在域服务(VS 2010 Silverlight商业应用程序)中创建一个查询,该查询以特定值返回检查结果的结果,我的数据库设置为:
Locations
a) Inspections
b) InspectionItems
c) InspectionReadings
a) Areas
b) Inspections
c) InspectionItems
d) InspectionReadings
因此,如您所见,在区域和位置下方有位置的检查读数。我有一个名为名称StatusList的POCO:
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; }
}
我正在使用它来返回查询结果:
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;
}
不幸的是,它返回标题中的错误,我不知道为什么,因为该列表显然是一个列表项,并且我已经转换了结果
.ToList<LocationStatusList>
最佳答案
问题恰恰是因为您调用了ToList()
。您已经声明要返回IQueryable<LocationStatusList>
,而List<T>
没有实现IQueryable<T>
。
选项(选择一项):
ToList
调用IEnumerable<LocationStatusList>
,IList<LocationStatusList>
或可能的List<LocationStatusList>
AsQueryable()
之后调用ToList()
:... as before ...
.ToList().AsQueryable();
请注意,在
ToList
调用中不需要type参数-无论如何编译器都会推断出该参数。关于c# - 无法将类型 'System.Collections.Generic.List<T>'隐式转换为 'System.Linq.IQueryable<T>',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10516086/