【问题标题】:LINQ Query and DateTimesLINQ 查询和日期时间
【发布时间】:2010-05-31 17:19:41
【问题描述】:

我正在尝试通过下一个查询从Entityset<MyObject> 获取Sum()。

(from MyObject p in SelectedObject.MyObjectEntitySet
where p.AColumn.HasValue && 
p.ADate >= dateTimeValue &&
p.ADate <= dateTimeValue2
select p.AColumn.Value).Sum();

没有运气检索到正确的总和。

有什么想法吗?

[编辑] 正常!

【问题讨论】:

  • 我们无法从中判断出什么问题。从本质上讲,您已经说过“这个查询没有给出我期望的结果”,而没有说明它正在给出什么结果或为什么您期望有任何不同。

标签: c#-3.0 linq-to-objects


【解决方案1】:

您可以通过将查询分解为其组成部分并检查每个部分的输出来对查询进行故障排除:

var entitySet = SelectedObject.MyObjectEntitySet;
var entitySetWithValues = entitySet.Where(p => p.AColumn.HasValue);
var entitySetGreater = entitySetWithValues.Where(p => p.ADate >= DateTimeValue);

...等等。

【讨论】:

    【解决方案2】:

    如果您看到重载列表,则 Sum 方法超过了数值(decimal、float、int、double、long 等)。选择器必须是一个接受 DateTime 并返回数值的函数。

    [编辑] 抱歉,我没有意识到 AColumn 是数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      相关资源
      最近更新 更多