【发布时间】:2018-11-15 07:50:50
【问题描述】:
我正在使用Where 子句根据Dates 过滤记录,但它不起作用。 From 和 To 日期相同,并且一条记录出现在同一日期内,但获取消除。
todate {11/6/2018 12:00:00 AM} //调试时
if (toDate != "0")
{
var todate = DateTime.Parse(toDate).Date;
query = query.Where(x => x.CreatedDate.Date <= todate);
}
var homework = query.Select(x => new StudentHomework
{
HomeworkId = x.HomeworkID,
CreatedDate = x.CreatedDate
}).OrderByDescending(i => i.CreatedDate).Skip(pageLong * recordLong - recordLong).Take(recordLong);
return homework.Any()
? Request.CreateResponse(HttpStatusCode.OK, homework)
: Request.CreateResponse(HttpStatusCode.NoContent);
在 VS 中调试时从 db 向控制器发送一条记录
但query 显示0 记录,并且在 ResulView 中收到以下消息
Message = "LINQ 不支持指定的类型成员 'Date' 到实体。只有初始化器、实体成员和实体导航 支持属性。
如果我在我的移动应用程序中删除过滤器json,结果是这样的
"HomeworkId": 1400,
"ClassName": "Class 1",
"SectionName": "N/A",
"SubjectName": "Mathematics",
"IsAnswered": false,
"CreatedDate": "2018-11-06T00:00:00",
【问题讨论】:
-
毫秒是多少?可能他们在两个日期是不同的。
-
这是什么数据库,查询在sql中翻译成什么,显然这将是您检查的第一件事对吗?
-
查询对象是什么类型的引用?在末尾添加 ToList()。可能工作
-
实际上不清楚你在问什么,或者你得到了什么结果
-
您说“结果有一条记录,在 VS 中调试控制器时”,但后来结果是 0。你能说明你在哪里使用这个结果吗?如果这是控制器的一部分,则可能有助于将操作方法的其余部分发布到您返回实际操作结果的位置
标签: c# asp.net .net linq class-library