C# “如何返回”;按“分类”;综合结果?
我试图理解如何在web.api接口中通过结果返回组,如下所示C# “如何返回”;按“分类”;综合结果?,c#,linq,asp.net-mvc-4,asp.net-web-api,C#,Linq,Asp.net Mvc 4,Asp.net Web Api,我试图理解如何在web.api接口中通过结果返回组,如下所示 [ActionName("Archive")] public HttpResponseMessage GetArchiveImport() { try { var result = _service.QueryFor(x => x.ActionType == ActionType.Import) .GroupBy(x => x.InsertDate,
[ActionName("Archive")]
public HttpResponseMessage GetArchiveImport() {
try {
var result = _service.QueryFor(x => x.ActionType == ActionType.Import)
.GroupBy(x => x.InsertDate,
(key, group) => new {
Date = key,
Entries = group.ToList()
}).ToList();
return Request.CreateResponse(HttpStatusCode.OK, result);
}
catch (Exception e) {
_logger.Error("Failed to retrive import file", e);
}
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
查询返回=>IEnumerable
我没有得到任何结果,有人能解释为什么吗?为什么不简化为这个
var result = _service.QueryFor(x => x.ActionType == ActionType.Import)
.GroupBy(x => x.InsertDate);
并与调试人员一起检查结果。如果您没有得到任何数据,那么您的查询不会返回任何数据
你的问题真的是这样吗
您的结果中包含数据,但未按预期将其传送到网络上
如果我假设这是一个普通的WebAPI方法,那么您的方法签名应该是这样的
public IEnumerable<IGrouping<DateTime, History>> GetArchiveImport()
并返回result.ToList()
函数的返回值将是IEnumerable
是否尝试调试代码?是否缺少select关键字?是否已检查是否有不包含“按部分分组”的结果?我在测试中有390k结果集。万事如意你有什么看法?如果您确信您的测试集工作正常,那么您是如何测试没有得到任何结果的?请记住,groupby语法不会返回IEnumerableCare来说明为什么这会被否决,我没有得到(key,group)=>new{Date=key,Entries=group.ToList()}的值。我想返回我所显示的确切结果,没有其他签名和相同的精确分组数据。好的,那么您必须将其序列化为xml/json/您喜欢的任何格式。使用上面的签名,您只需执行return result.ToList(),在这里您可以找到有关iGroup问题的更多信息
public class HistoryGroup
{
public DateTime InsertDate { get; set; }
public IEnumerable<History> History { get; set; }
}
var result = _service.QueryFor(x => x.ActionType == ActionType.Import)
.GroupBy(x => x.InsertDate,
(key, group) => new HistoryGroup() {
InsertDate = key,
History = group
})