ご覧いただきありがとうございます。
バックグラウンド
C# コード内で、ユーザーが行った注文の履歴を返す MSSQL データベースからストアド プロシージャを呼び出しています。これには Entity Framework を使用します。コードは次のとおりです。
var db = new CustomerEntities();
return db.GetOrderHistoryByUserId(id);
OrderNumber
このストアド プロシージャの出力は、特定の注文に複数の製品が存在する可能性があるため、同じレコードを持つ複数のレコードを含む注文のリストです。そこで、コードを次のように変更しました。
var db = new CustomerEntities();
return db.GetOrderHistoryByUserId(id).GroupBy(p => p.OrderNumber);
Order
ネストされたオブジェクトを含むオブジェクトのリストを取得したいと思っていましたProduct
が、代わりに、このコードは基本的に以前と同じ応答を生成しました。
最終的には、このクエリを次のような JSON レスポンスに変換したいだけです。
Orders : [
{
OrderNumber : 1,
OrderTotal: $500,
Products: [
{ProductSku : 11111, ProductPrice: $200},
{ProductSku : 22222, ProductPrice: $300}
]
}
]
JSON出力の生成を支援するためにMVC 4を使用しているため、その部分についてはすでに明確です.目的の構造を持つオブジェクトの配列を生成する方法でストアドプロシージャの結果を使用する方法を知る必要があるだけです.
質問
ストアド プロシージャへの元の LINQ 呼び出しを使用して、この目的のオブジェクト構造を生成する方法はありますか?それとも、ストアド プロシージャの結果を反復処理して新しいオブジェクトを構築する必要がありますか?
ご協力いただきありがとうございます!