C # LINQ DatabaseEntitie Запрос к первому значению в последнем элементе приводит к ошибке - PullRequest
0 голосов
/ 12 октября 2011

У меня есть объект базы данных Microsoft SQL 2008 с одной таблицей, содержащей 6 столбцов, где первый столбец - это просто мой первичный ключ, число которого увеличивается с каждым шагом.

Я написал метод, который возвращает следующий первичный ключ (целое число)

private int NextPrimaryKey()
{
    int NextPrimaryKey;
    using (MitarbeiterlisteEntities entities = new MitarbeiterlisteEntities())
    {
        NextPrimaryKey = entities.Mitarbeiterliste.LastOrDefault().primaerschluessel;
        NextPrimaryKey++;
    }
    return NextPrimaryKey;
}

Проблема в том, что я всегда получаю сообщение об ошибке:

LINQ to Entities не распознает метод IntraNET_Prototype.Mitarbeiterliste LastOrDefaultMitarbeiterliste, и этот метод нельзя преобразовать в выражение хранилища.

Что не так? Я просто хочу получить доступ к первому значению (столбцу) в последнем элементе - primaerschluessel. Есть идеи?

1 Ответ

1 голос
/ 12 октября 2011

Last и LastOrDefault не поддерживаются в Linq-to-Entities.

Вы должны использовать:

NextPrimaryKey = entities.Mitargeiterliste
                         .Select(e => e.primaerschluessel)
                         .OrderByDescending(p => p)
                         .FirstOrDefault();

=> вы будете сначала заказывать объекты в порядке убывания ичем выбрать первый.

...