在此功能中:
public IList<foods> GetFoods()
{
IList<foods> myFoods = null;
using (var db = new FoodsContext(ConnectionString))
{
var query = from e in db.MyFoods
select e;
myFoods = query.ToList();
return myFoods;
}
}
我收到错误:
myFoods = query.ToList();
错误说:
InvalidCastException未处理
但我可以得到某列的值,即:当我写:
var query = from e in db.MyFoods
select e.calorie;
我正确地得到了卡路里柱。那么问题出在哪里呢?感谢。
答案 0 :(得分:0)
根据您的代码,我相信您的linq查询的结果不能直接转换为食品类对象集合。请尝试以下代码
public IList<foods> GetFoods()
{
IList<foods> myFoods = null;
using (var db = new FoodsContext(ConnectionString))
{
var query = from e in db.MyFoods
select new foods
{
calorie = e.calorie,
// Map other properties of foods object here
};
myFoods = query.ToList();
return myFoods;
}
}
如果您收到有关详细信息的错误,请告诉我
答案 1 :(得分:0)
我猜您使用的是Linq2SQL,db.MyFoods
表示您的表名为MyFood
。因此,当您尝试query.ToList();
时,它会返回List<MyFood>
,并且您尝试将List<MyFood>
转换为IList<foods>
,这会导致InvalidCastException
。
试试这个,
public IList<foods> GetFoods()
{
using (var db = new FoodsContext(ConnectionString))
{
return db.Employees.Select(e => new foods
{
calorie = e.calorie,
// Map other properties of foods object here
}).ToList<foods>();
}
}