LINQ to Entities does not recognize the method Last() method, and this method cannot be translated into a store expression.
Ten błąd jest konsekwencją architektury providera SQL Server dla linq to entities, który całe zapytanie konwertuje na SQL. W SQL nie ma polecenia last a jedynie za pomocą Polecenia SELECT TOP X można uzyskać pierwszych X wierszy. Prostym rozwiązaniem jest zamiana wywołania Last() na OrderByDescending(x => x.ID).First();