2016-08-02 6 views
0

Ich habe den folgenden Code in einem Controller, wie Sie sehen können, gibt es ein Objekt serialisiert nach Json.Merge Json Ergebnisse in eine

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

Das Verfahren, bei dem sie die Daten erhalten, ist in einem ClientsRepo.GetClientCreditSummary, und ich kann es fusionieren gerne mit einem anderen ClientsRepo.GetClient und kehre sie als Json Ergebnis in dieser gleichen Controller Aktion aufgerufen.

Wie kann ich das tun?

+0

Durch Zusammenführen, was genau meinst du damit? Sind diese 2 Datenstücke vom selben Typ? Welche Art von Struktur möchten Sie haben? –

Antwort

1

Sie können einen anonymen Typ verwenden:

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

Weitere Informationen über anonyme Typen http://www.c-sharpcorner.com/UploadFile/ff2f08/anonymous-types-in-C-Sharp/

Wenn Sie stattdessen die Felder der beiden Einheiten zu einer Einheit verschmelzen zu wollen, glaube ich, die beste So würde man jedes Feld manuell in die neue Entität abbilden.

0

Es ist nicht sehr gute Form, zwei Objekte so und Brei zusammen zu nehmen.

erwägen, anstatt ein neues Objekt, das die beiden anderen Eigenschaften besitzt:

[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); 
}