我一直在尝试从看起来像 image1 的表中编译数据,并将其转换并显示为像 image2 这样的表。
图片1
图片2
首先,我想我会这样做: 一个名为 Region 的类包含一个名为 server 的类的列表 服务器类将有 3 个属性 serverid、servername 和一个名为 CostData 的类的列表。CostData 将存储年月和当月的成本总和。
我已经使用 linq 管理了一个查询,该查询为我提供了每个服务器每月的总数,例如:2013 年,月:1,服务器:Server1,总计:460
我仍然发现自己缺少一些东西。首先,我需要将每台服务器的每月总计放在一个地方,就像我用我的 CostData 尝试过的那样,这样我使用 html 就可以迭代每个服务器的月份并将它们显示在列中。
此外,使用此解决方案,我仍然错过了 CostDesc 列,我还想显示每月总计,就像您可以在 image2 上看到的那样。
这是我的课程:
public class Region
{
public List<Server> Servers { get; set; }
}
public class Server
{
public string ServerID { get; set; }
public string ServerName { get; set; }
public List<CostData> MonthlyCosts { get; set; }
}
public class CostData
{
public string Date { get; set; }
public double Sum { get; set; }
}
这就是我构建对象的方式:
Region r = new Region();
r.servers = new List<Server>();
foreach (var row in linqQueryResult)
{
Server s = new Server();
s.ServerID = row.ServerID;
s.ServerName = row.ServerName;
s.MonthlyCosts = new List<CostData>();
CostData cd = new CostData();
cd.Date = row.Year.ToString() + "-" + row.Month.ToString();
cd.Sum = row.ServerSum;
s.MonthlyCosts.Add(cd);
r.Servers.Add(s);
}
return View(r);
你有什么指点或建议吗?我希望有更多经验的人可以看看并给我一些建议,而不是要求整个解决方案,尽管如果你想这样做我不介意:)
我想知道是否没有一种使用 linq 获取我想要的数据的好方法。问题是我只能访问一个存储过程,它只会给我像 image1 中的数据。所有对数据的操作都必须使用 c# 在本地完成,尽管这可能不是一件坏事。