Хотя «элемент базы данных» не материализован, каждое выражение в методах Linq будет переводиться как выражение SQL, когда это возможно ... но эта операция:
Title = XElement.Parse(x.Translation).Descendants("Language").Where(f => f.FirstAttribute.Value == "1").Descendants("Title").Single().Value
, как говорится в тексте сообщения об ошибке, не может быть переведено в выражение хранилища, это связано с наличием XElement и его методов.
Чтобы выполнить эту строку в методе Linq, вы должны материализовать IQueryable, возвращаемый
context.Test.where((displayAll == false && (x.Aufhebung == null || x.Aufhebung > DateTime.Now)) || (displayAll))
и затем продолжите выбор. В этом случае, чтобы материализовать этот IQueryable, в синтаксисе, не похожем на SQL, Linq предоставляет метод .ToList (), который в этом случае возвращает List , материализованный и готовый в памяти приложения для использования с каждым выражением приложения. .