2016-08-02 8 views
0

コントローラに次のコードがあります.Jsonにシリアル化されたオブジェクトが返されます。Json結果を1つにマージする

... 
    [HttpGet("{id}")] 
      public IActionResult Get(string id) 
      { 
       ClientsRepository ClientsRepo = new ClientsRepository(connectionString); 
       return Json(ClientsRepo.GetClientCreditSummary(id)); 
      } 
... 

それがデータを取得する方法がClientsRepo.GetClientCreditSummaryであり、IはClientsRepo.GetClientと呼ばれる別のものとそれをマージしたい、この同じコントローラのアクションにJSON結果としてそれを返すことになります。

どうすればいいですか?

+0

は、プロパティとして、他の2を保持して新しいオブジェクトを作成する代わりに考えてみましょうか?それらの2つのデータは同じタイプですか?どのような構造にしたいですか? –

答えて

1

あなたは匿名型を使用することができます:匿名型

あなたの代わりに1つのエンティティに2つのエンティティのフィールドをマージしたいしている場合http://www.c-sharpcorner.com/UploadFile/ff2f08/anonymous-types-in-C-Sharp/の詳細については

return Json(new { ClientCreditSummary = ClientsRepo.GetClientCreditSummary(id), Client = ClientsRepo.GetClient(id) }); 

を、私は最高だと思います手動で各フィールドを新しいエンティティにマップする方法があります。

0

このような2つのオブジェクトを1つにまとめることは、あまり良い形ではありません。あなたが正確に何を意味するか、マージすることにより

[HttpGet("{id}")] 
public IActionResult Get(string id 
{ 
    var repo = new ClientsRepository(connectionString); 
    var creditSummary = repo.GetClientCreditSummary(id); 

    var client = repo.GetClientById(id); 

    var result = new 
    { 
     Client = client, 
     CreditSummary = creditSummary 
    }; 

    return Json(result); 
} 
関連する問題