我在使用以下代码时遇到问题。在我粘贴之前,让我先介绍一下应该发生什么的历史。
我目前有一个模型,其中包含 2 个感兴趣的字段,即客户下订单的名称,以及他/她下订单的日期。将使用预先计算的日期来查询该dateplaced
字段(并且应该只查询日期,而不是时间)。该查询计算 MondayOrder 字段中出现的重复项的数量,并将它们组合在一起。现在,当我排除应该查询日期的 where 子句时,查询运行良好。但是,此查询的目标是根据下订单的日期计算下一周的订单数量。
List<string> returnlist = new List<string>();
DateTime dt = getNextWeekMondaysDate().Date;
switch (day)
{
case DayOfWeek.Monday:
{
var CountOrders =
from x in Data.EntityDB.Orders
group x by x.MondayOrder into m
let count = m.Count()
select new
{
MondayOrderItem = m.Key, Amount = count
};
foreach (var item in CountOrders)
{
returnlist.Add(item.MondayOrderItem + " : " +
item.Amount);
}
}
break;
该getNextWeekMondaysDate()
方法有一个我可以使用的重载,如果我为其提供一个日期,它将从给定的参数中获取下一个星期一的日期。但问题是,LINQ 不接受如下查询:
var CountOrders =
from x in Data.EntityDB.Orders
where getNextWeekMondaysDate(x.DatePlaced.Value).Date == dt
group x by x.MondayOrder into m
let count = m.Count()
select new { MondayOrderItem = m.Key, Amount = count };
这正是我必须达到的。这种情况有什么解决方法吗?
更新
这是我尝试第二个查询时遇到的异常。
LINQ to Entities 无法识别方法 'System.DateTime getNextWeekMondaysDate(System.DateTime)' 方法,并且此方法无法转换为存储表达式。