image1 のようなテーブルからデータをコンパイルし、それを image2 のようなテーブルに変換して表示しようとしています。
画像1
画像2
サーバーというクラスのリストを含む Region という 1 つのクラス サーバー クラスには、serverid、servername という 3 つのプロパティと、CostData というクラスのリストがあります。CostData には、年月とその月のコストの合計が格納されます。
linq を使用して、2013 年、月: 1、サーバー: サーバー 1、合計: 460 のように、各サーバーの月ごとの合計を取得するクエリを取得しました。
それでも、私はいくつかのことが不足しています。最初に、CostData で試したように、各サーバーの月間合計を 1 か所にまとめる必要があります。これにより、html を使用して各サーバーの月を反復処理し、それらを列に表示することができます。
また、このソリューションでは、image2 で見られるように、毎月の合計も表示したい CostDesc 列をまだ見逃しています。
ここに私のクラスがあります:
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# を使用してローカルで行う必要がありますが、それはおそらくそれほど悪いことではありません。