将模型中的DateTime对象格式化为NotMapped属性

时间:2019-02-26 16:16:25

标签: json asp.net-mvc entity-framework linq model

我有一个名为Report的模型,该模型具有以下两个属性。我将检索数据并将其发送到jQuery datatable。我需要先格式化日期字段,然后再将其发送给视图,如下所示:

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对象并返回其字符串。

1 个答案:

答案 0 :(得分:1)

我在Linq查询中使用ToString遇到了类似的问题。对于您的情况,我认为在查看时间中处理datetime的转换并保留datetime变量会更容易。而是接受搜索操作的特定格式,解析接收到的日期并进行查询。

经历了很长一段时间后,我现在倾向于从视图中将日期时间作为具有明确指定格式的字符串(“ yyyy-mm-dd”只是我个人的选择:P)接受并使用DateTime.TryParseExact()空输入也是如此。

希望有帮助。编码愉快。