AnonymousType # 1 для int - PullRequest
       2

AnonymousType # 1 для int

0 голосов
/ 22 февраля 2011
 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'

Как мне избежать этой ошибки?

Ответы [ 3 ]

3 голосов
/ 22 февраля 2011

Вы можете сделать это проще и просто использовать функцию Макс .

var _ids = from a in db.Articles
           where a.CategoryId == categoryID
           select a.ID;    

int maxID = _ids.Max();
1 голос
/ 22 февраля 2011

Вы можете использовать (но вы должны проверить на ноль, прежде чем получить доступ)

int  maxID = Convert.ToInt32(_maxID.FirstOrDefault().ID);
//or
int? maxID = _maxID.FirstOrDefault().ID as int;
//or
int maxID = (int)_maxID.FirstOrDefault().ID;
1 голос
/ 22 февраля 2011

Не используйте FirstOrDefault, если вы не собираетесь проверять нулевое значение, прежде чем получить доступ к значению. Просто используйте First (), затем.

Во-вторых, вы можете выбрать a.ID напрямую.

[...]
orderby a.Id descending
select a.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...