2016-07-05 77 views
-1

我一直在進行大量搜索,但尚未找到有關此問題的任何相關信息。我想知道是否有人可以指出我在正確的方向,我可以如何實現以下內容:使用實體框架將api端點請求保存到數據庫

所以我試圖做的是做一個API端點請求,並將結果保存到我的數據庫上結束。

這裏是我的控制器:

public class Reference_ManufacturersController : ApiController 
{ 
    private DataEntities db = new DataEntities(); 
    static string _address = "http://localhost:57454/api/Reference_Manufacturers?format=json"; 
    private Reference_Manufacturers result; 

    // GET: api/Reference_Manufacturers 
    public async Task<IEnumerable<Reference_Manufacturers>> GetReference_Manufacturers() 
    { 
     Reference_Manufacturers resultset = await GetResponse(); 
     db.Reference_Manufacturers.Add(resultset); 
     await db.SaveChangesAsync(); 
     return db.Reference_Manufacturers; 
    } 

    private async Task<Reference_Manufacturers> GetResponse() 
    { 
     var client = new HttpClient(); 
     HttpResponseMessage response = await client.GetAsync(_address); 
     response.EnsureSuccessStatusCode(); 
     result = await response.Content.ReadAsAsync<Reference_Manufacturers>(); 
     return result; 
    } 
} 

什麼,當我運行出現這種情況是我得到以下異常:

ExceptionMessage

無法反序列化當前的JSON陣列(例如,[1 ,2,3])轉換爲類型'DIA_FirearmsAPIversion2.Models.Reference_Manufacturers',因爲該類型需要JSON對象(例如{「name」:「value」})才能正確地反序列化。要解決這個錯誤,或者將JSON更改爲JSON對象(例如{「name」:「value」})或將反序列化類型更改爲實現集合接口(例如ICollection,IList)的數組或類型,從JSON數組中反序列化。 JsonArrayAttribute也可以添加到類型中,以強制它從JSON數組反序列化。路徑'',第1行,位置1.

我在做什麼錯?

+2

你可以展示一個json的例子嗎? – stuartd

+0

[鏈接](http://i693.photobucket.com/albums/vv293/saturobi360/ReferenceManufacturer_zpszktksoqf.jpg) – saturobi360

+0

很確定你從'_address'返回的json不能映射到'Reference_Manufacturers' –

回答

0

我想通了什麼,我俯視,做錯了。 我沒有使用容器來保存所有返回的值。

public class Reference_ManufacturersController : ApiController 
{ 
    private DataEntities db = new DataEntities(); 
    static string _address = "http://localhost:57454/api/Reference_Manufacturers?format=json"; 
    private List<Reference_Manufacturers> result; 

    // GET: api/Reference_Manufacturers 
    public async Task<IEnumerable<Reference_Manufacturers>> GetReference_Manufacturers() 
    { 
     List<Reference_Manufacturers> resultset = await GetResponse(); 
     foreach (Reference_Manufacturers manu in resultset) 
     { 
      db.Reference_Manufacturers.Add(manu); 
     } 
     await db.SaveChangesAsync(); 
     return db.Reference_Manufacturers; 
    } 

    private async Task<List<Reference_Manufacturers>> GetResponse() 
    { 
     var client = new HttpClient(); 
     HttpResponseMessage response = await client.GetAsync(_address); 
     response.EnsureSuccessStatusCode(); 
     result = await response.Content.ReadAsAsync<List<Reference_Manufacturers>>(); 
     return result; 
    }} 
相關問題