我有这个linq查询,它将选择我的表InventoryLocation中的所有记录。但它给了我一个错误...我不知道是什么问题...我真的很新,所以忍受我...
错误
无法将System.Linq.IQueryable类型隐式转换为System Collections.Generic.IEnumerable
提前感谢..
public IEnumerable<InventoryLocationModel> GetInventoryLocations()
{
IEnumerable<InventoryLocationModel> results = null;
using (DataContext ctx = new DataContext())
{
results = from a in ctx.InventoryLocations select a;
}
return results;
}
答案 0 :(得分:2)
主要问题是你实际上并没有执行查询,所以你只剩下IQueryable而不是实际结果,因此你得到了错误。
public IEnumerable<InventoryLocationModel> GetInventoryLocations()
{
IEnumerable<InventoryLocationModel> results = null;
using (DataContext ctx = new DataContext())
{
results = (from a in ctx.InventoryLocations select a).ToList();
}
return results;
}
您还可以简化查询。所有你真正需要的是
public IEnumerable<InventoryLocationModel> GetInventoryLocations()
{
using (DataContext ctx = new DataContext())
{
return ctx.InventoryLocations.ToList();
}
}
答案 1 :(得分:2)
这将得到你想要的:
results = (from a in ctx.InventoryLocations select a).AsEnumerable();
这可以确保您仍然可以利用LINQ的deferred execution。