var _maxID = from a in db.Articles
where a.CategoryId == categoryID
orderby a.Id descending
select new {ID = a.ID};
int maxID = _maxID.FirstOrDefault().Id;
此代码给我一个错误
无法将类型'AnonymousType#1'隐式转换为'int'
如何避免此错误?
答案 0 :(得分:3)
您可以使其更简单,只需使用Max功能。
var _ids = from a in db.Articles
where a.CategoryId == categoryID
select a.ID;
int maxID = _ids.Max();
答案 1 :(得分:1)
如果在访问该值之前不打算检查null,请不要使用FirstOrDefault。只需使用First()然后。
其次,您可以直接选择a.ID.
[...]
orderby a.Id descending
select a.ID
答案 2 :(得分:1)
您可以使用(但必须在访问前检查null)
int maxID = Convert.ToInt32(_maxID.FirstOrDefault().ID);
//or
int? maxID = _maxID.FirstOrDefault().ID as int;
//or
int maxID = (int)_maxID.FirstOrDefault().ID;