Во-первых.Насколько я вижу, это не относится к запросу Linq aansluiting
.Что это ?Во-вторых, почему бы вам не попытаться материализовать данные, сначала вызвав .ToList()
, так что если что-то плохое случится, вы сразу увидите, а не просто ошибку 500.
Я думаю, что вызов .ToString("dd-MM-yyyy")
внутри Linq не являетсямудрый шаг, так как Linq не доволен этой функцией.Попробуйте сначала извлечь данные, а затем преобразовать их в ваш формат.В вашем случае вы получите эту ошибку:
Исключение типа 'System.NotSupportedException' произошло в EntityFramework.SqlServer.dll, но не было обработано в коде пользователя
Дополнительная информация: LINQ to Entities не распознает метод метода System.String ToString (System.String), и этот метод нельзя преобразовать в выражение хранилища.
Вы можете сделать что-то вроде этого:
var result = context.releventData.ToList().Select(data => new ReleventData
{
Id = data.Id,
Status = data.Status,
DateOfUpdate = data.DateOfUpdate.HasValue ? data.DateOfUpdate.Value.ToString("dd-MM-yyyy") : string.Empty,
}).ToList();
НО это не лучшее решение, так как вы в конечном итоге материализуете все свои данные, что означает, что все данные таблицы будут обрабатываться в вашем приложении, что является избыточным, если таблица не мала.
Итак, лучшее решение для этого:
Получите необходимые данные из запроса Linq ( Только то, что вам нужно ).Затем материализуйте эти данные и отформатируйте их так, как вы хотите, а затем покажите их пользователю.
Мое собственное мнение: Запрос Linq не должен отвечать за генерацию формата данных.Это следует сделать на верхнем уровне приложения или, по крайней мере, после того, как вы материализовали свои данные.