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'
Как мне избежать этой ошибки?
Вы можете сделать это проще и просто использовать функцию Макс .
var _ids = from a in db.Articles where a.CategoryId == categoryID select a.ID; int maxID = _ids.Max();
Вы можете использовать (но вы должны проверить на ноль, прежде чем получить доступ)
int maxID = Convert.ToInt32(_maxID.FirstOrDefault().ID); //or int? maxID = _maxID.FirstOrDefault().ID as int; //or int maxID = (int)_maxID.FirstOrDefault().ID;
Не используйте FirstOrDefault, если вы не собираетесь проверять нулевое значение, прежде чем получить доступ к значению. Просто используйте First (), затем.
Во-вторых, вы можете выбрать a.ID напрямую.
[...] orderby a.Id descending select a.ID