C#、.NET Framework 4.0、およびEntity Framework Code Firstを使用して 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.
Web サービスで使用し、JSON として送信するため、文字列である必要があるPostLine.DateUtc
ため、文字列として保存する方が適切です。
タイプを使用するDateTime
と、JSON 応答で次のような結果が得られます。
{
"DateUtc": "/Date(1380924000000+0200)/",
"Description": "post_1",
"UserId": 1
}
LINQ 式で文字列を DateTime と比較する方法を知っていますか?