-1

image1 のようなテーブルからデータをコンパイルし、それを image2 のようなテーブルに変換して表示しようとしています。

画像1

img1

画像2

img1

サーバーというクラスのリストを含む 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# を使用してローカルで行う必要がありますが、それはおそらくそれほど悪いことではありません。

4

1 に答える 1