我正在使用 C#、.NET Framework 4.0 和Entity Framework Code First开发 WCF RESTful 服务开发 WCF RESTful 服务。
我有这个类(代表数据库中的一个表):
[DataContract]
public class PostLine
{
public int PostLineId { get; set; }
[DataMember]
public int? UserId { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public string DateUtc { get; set; }
public User Author { get; set; }
}
我正在尝试这样做:
DateTime fourDaysAgo = DateTime.Now.Date.AddDays(-4);
var postLines =
context.PostLines.Where(p => DateTime.Compare(DateTime.Parse(p.DateUtc), fourDaysAgo) > 0).Include("Author");
但我收到以下错误:
{System.NotSupportedException: LINQ to Entities doesn't recognize the method 'System.DateTime Parse(System.String)', which can not be converted into an expression of the repository.
我需要PostLine.DateUtc
将其作为字符串,因为我将在我的 Web 服务上使用它,并将其作为 JSON 发送,因此将其存储为字符串对我来说更好。
如果我使用DateTime
类型,我将在 JSON 响应中得到类似的信息:
{
"DateUtc": "/Date(1380924000000+0200)/",
"Description": "post_1",
"UserId": 1
}
您知道如何在 LINQ 表达式上将字符串与 DateTime 进行比较吗?