【发布时间】:2019-09-15 00:23:19
【问题描述】:
我正在尝试使用 Linq 查询根据 SQLServer 数据库中的 DateTime 字段进行分组。以下是我正在尝试的内容
var result = _context.sRProject
.Where(x => x.r_Project == rep)
.GroupBy(x => new { x.s_Date }).ToList();
return result;
这里的 s_Date 是 DB 中的 DateTime 字段。我在结果中收到以下错误,例如
不能隐式转换类型 'System.Collections.Generic.List,Model.sRProject>>' 到 'System.Collections.Generic.List'
我在模型类中有
public class sRProject : IsRProject
{
public DateTime? s_Date { get; set; }
public string delivery { get; set; }
public DateTime? delDate { get; set; }
public string po { get; set; }
public string so { get; set; }
public string r_Project { get; set; }
}
我想要实现的 SQL 查询如下所示
SELECT [s_Date],[delivery],[delDate],[po],[so],[r_Project]
FROM [sDev].[dbo].[PrjDetails]
where [r_Project] = @rep
group by [s_Date],[delivery],[delDate],[po],[so],[r_Project]
我在这里错过了什么?
【问题讨论】:
-
目前还不清楚
Model.sRProject如何表示这些按日期分组的值。实际上,预先分组的集合似乎是Model.sRProject类型,这让事情变得更加不清晰。通过使用GroupBy,您表示“我有多个具有相同日期的项目,我希望这些项目在每个日期的单独组/组中返回。” -
@John 我不明白拒绝投票/结束问题的原因。因为我是新手,所以尝试了一些事情并伸出援手帮助检查可能是什么问题。我不知道我们必须更改模型,我将不得不对此进行研究
-
投反对票的原因是您没有解释您希望在方法结束时如何格式化数据。我们不知道您的期望是什么,所以很难回答。既然你至少提供了你的模型(它有帮助),我已经删除了反对票,但仍然不清楚你想做什么。我提供了一个“最佳猜测”的答案,现在我要去吃饭了,所以暂时无法回复。我希望它有所帮助。
-
@John 我试图实现的 sql 查询已添加到问题中。我刚开始在 Linq 查询 GroupBY 中添加了 s_Date 并看到此错误,并停止在 groupBy 子句中添加更多内容。我不确定答案中的关键是什么
-
@John 分组的原因是我需要将 SUM(数量字段)添加到查询中。我只想一次做一步。我说的问题正确吗?
标签: c# entity-framework linq