Форматировать объект DateTime в модели как свойство NotMapped

У меня есть модель под названием Report, имеющая два следующих свойства. Я собираюсь получить данные и отправить их в таблицу данных jQuery. Мне нужно отформатировать поле даты перед отправкой для просмотра, я сделал это, как показано ниже:

public class Report
{
    public int Id {get; set;}
    public DateTime ActivityDate { get; set; }

    //Here is the date formation property
    public string FormattedDate => ActivityDate.ToString();
}

Вот метод действия, который вызывается таблицей данных jQuery:

[JQDataTable]
public ActionResult Search()
{
     IQueryable<Report> data = db.Reports;
     return View("Index",data);
}

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

The specified type member 'FormattedDate' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

Я много пробовал и искал, но не смог найти решение для этого. На следующем шаге я хочу преобразовать эту дату в объект PersianCalendar и вернуть его строку.

обычно считается хорошей практикой использовать модели представления для представления только тех данных, которые нужны вашему представлению. это решит вашу проблему, поскольку вы будете запрашивать необработанные отчеты, а затем ваша модель просмотра отчетов будет иметь FormattedDate. во время преобразования из необработанной модели в модель представления связь с сущностями больше не будет фактором.

GregH 26.02.2019 22:00
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
1
67
1

Ответы 1

Я столкнулся с аналогичными проблемами, используя ToString внутри запроса Linq. В вашем случае, я думаю, было бы проще справиться с преобразованием даты и времени во время просмотра и оставить переменную даты и времени как есть. Скорее примите определенный формат для действия поиска, проанализируйте полученную дату и выполните запрос.

После очень долгого мучения я теперь склонен принимать дату и время из представления в виде строки с моим явно указанным форматом («гггг-мм-дд» просто мой личный выбор: P) и использовать DateTime.TryParseExact(), обрабатывая нулевой ввод как Что ж.

Надеюсь, поможет. Удачного кодирования.

Другие вопросы по теме