2017-02-03 1 views
-1

Salut, je fais un projet web api. J'ai un verbe get http et je veux retourner plusieurs lignes de données. J'utilise angulaire à l'avant. J'essaie comme ci-dessous.Comment retourner plusieurs lignes de données dans une API Web?

public IEnumerable<NCT_Process_Settings> Get() 
{ 
    NCT_Process_Settings obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable(); 
    return obj; 
} 

Comme je sais que ma requête retourne collection et mon objet obj n'est pas capable de gérer plusieurs lignes de données. Alors, y a-t-il un moyen de gérer cela? Toute aide serait appréciée. Merci.

+1

'IEnumerable < NCT_Process _Settings> obj = (à partir de .... '(votre requête retourne une collection, pas un seul objet –

+0

Merci. S'il vous plaît poster une réponse. Travaillé ... –

+0

Vous pouvez également utiliser 'var obj = (de ...' qui déduirait le type – Nkosi

Répondre

-1

Vous pouvez essayer cela, son travail bien

public static List<Student> items = new List<Student>(); 


     [HttpGet] 
     public IEnumerable<Student> GetAllStudents() 
     { 
      if (items.Count() == 0) 
      { 
       items.Add(new Student { ID = 1, Name = "Ashish", City = "New Delhi", Course = "B.Tech" }); 
       items.Add(new Student { ID = 2, Name = "Nimit", City = "Noida", Course = "MCA" }); 
       items.Add(new Student { ID = 3, Name = "Prawah", City = "Dehradun", Course = "B.Tech" }); 
       items.Add(new Student { ID = 4, Name = "Sumit", City = "Nainital", Course = "MCA" }); 
      } 

      return items; 
     } 
1

Vous déclarez une variable qui est un objet unique, mais vous essayez d'assigner une collection d'objets à (le résultat de votre requête). Modifiez le code à

IEnumerable<NCT_Process_Settings> obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable(); 
return obj; 

ou

var obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable(); 
return obj; 
+0

Merci Si je reçois des lignes à var alors IEnumerable cela fonctionnera-t-il? Désolé si je me trompe –

+0

l'utilisation de 'var' fonctionnera bien (en interne, le compilateur déduit le type en fonction de ce que retourne votre requête, donc c'est la même chose que' IEnumerable '). Et en remarque, vous n'avez pas besoin du' .AsEnumerable() Ce qui en fait un ensemble en mémoire, vous pouvez juste retourner 'IQueryable ' qui pourrait être plus efficace en fonction de ce que vous faites ensuite avec cette collection –

+0

Merci, j'ai compris et je vous remercie de m'avoir fait comprendre le concept . –

2

Essayez celui

 [Route("api/test")] 
     public HttpResponseMessage Get() 
     { 
      HttpResponseMessage response = null; 
      List<table_name> obj = new List<table_name>(); 
      try 
      { 
       obj = db.table_name.AsNoTracking().ToList(); 

       response = Request.CreateResponse(HttpStatusCode.OK, obj); 
      } 
      catch (Exception ex) 
      { 
       response = Request.CreateResponse(HttpStatusCode.NotFound); 
      } 
      return response; 
     } 

ensuite accéder à cette api avec http://192.168.0.1/api/test

nom_table peut être un modèle