Linq 用户的问题:我得到一个 InvalidCastexception: Specified cast is not valid
每当我试图获得 IEnumerable
来自 revs
在进行 Linq 查询之后。数据库已填充,它应该返回值。
具体来说,错误发生在 List<PDP> rev = revs.ToList<PDP>();
行
有什么想法吗?
short ret;
using (DataContext db = new DataContext())
{
var play = from p in db.PDP
where p.ID == id
select p;
var revs = play.OrderByDescending(p => p.revision);
List<PDP> rev = revs.ToList();
var revNum = revs.ToList().Count() > 0 ? rev.First().revision : 0;
ret = (short)revNum;
}
编辑
我已经澄清了部分代码。
编辑 2
rev
作为调试变量存在以缩小错误范围。
原代码为:
short ret;
using (GasForecastDataContext db = new GasForecastDataContext())
{
var play = from p in db.PDP
where p.Play_ID == play_id
select p;
var revs = play.OrderByDescending(p => p.revision);
var revNum = revs.Count > 0 ? rev.First().revision : 0;
ret = (short)revNum;
}
最佳答案
您声明“rev”列表变量是否有特定原因? “Count()”和“First()”在 IEnumerable 接口(interface) (“revs”) 上可用。
short ret;
using (DataContext db = new DataContext())
{
var play = from p in db.PDP
where p.ID == id
select p;
var revs = play.OrderByDescending(p => p.revision);
ret = (short) revs.Count() > 0 ? revs.First().revision : 0;
}
关于c# - Linq 结果到 IEnumerable 无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6444472/