0

J'ai une table appelée MemberCompany qui a un enregistrement pour chaque entreprise dont dispose un membre. le modèle est ci-dessous. Quand je l'interroge via une méthode webapi passant dans le membre, je peux voir en mode débogage qu'il renvoie la compagnie pour ce membre, mais quand je l'exécute dans le navigateur, je peux voir qu'il renvoie également la liste complète des membres. Est-il possible de renvoyer simplement une collection d'enregistrements membercompany sans les deux tables référencées? J'ai commenté le code initial pour inclure ces deux tableaux, mais ils semblent toujours être inclus dans la réponse.Empêchez webapi de renvoyer toutes les données des tables associées

public partial class MemberCompany 
    { 
     public int id { get; set; } 
     public int membership_id { get; set; } 
     public string company_name { get; set; } 
     public string company_address1 { get; set; } 
     public string company_address2 { get; set; } 
     public string company_town_city { get; set; } 
     public Nullable<int> company_county { get; set; } 
     public string company_postcode { get; set; } 
     public string company_tel { get; set; } 
     public string company_fax { get; set; } 
     public string company_email { get; set; } 
     public string company_contact { get; set; } 
     public string company_web { get; set; } 
     public string company_country { get; set; } 
     public Nullable<System.DateTime> last_updated { get; set; } 
     public Nullable<decimal> latitude { get; set; } 
     public Nullable<decimal> longitude { get; set; } 

     public virtual counties counties { get; set; } 
     public virtual members members { get; set; } 
    } 

WebAPI

[HttpGet("admin/api/membercompany/member/{member_id}")] 
      public IEnumerable<MemberCompany> GetByMember(int member_id) 
      { 
       var Companies = db.MemberCompanies 
       // .Include(t => t.counties) 
        //.Include(t => t.members) 
        .Where(m => m.membership_id == member_id); 
       return Companies.AsEnumerable(); 
      } 

Répondre

1

Désactiver le chargement paresseux pour le contexte. Ma meilleure supposition est elle est sur et les entités sont chargées quand le graphique est sérialisé ...

Note: c'est en fait une bonne idée dans une application web et je vous recommande de le faire globalement, de sorte que vous ne le faites pas se faire mordre par les problèmes de performance en raison de chargement paresseux plus tard, et toujours savoir exactement ce que vous reviendrez.

+0

merci, cela a fonctionné cependant comment je structurerais la requête pour renvoyer le membre qui est associé plutôt que tous les membres? – Tim

+0

Je ne suis pas sûr d'avoir bien compris la question, mais si vous cherchez le premier article de la collection, essayez d'utiliser First, peut-être en faisant une commande en fonction des besoins? Ou Prenez (1) si vous voulez toujours une collection mais seulement un élément dedans. –

+0

Ou si vous recherchez les membres associés dans la collection 'members', y compris la collection comme vous l'avez fait dans le code commenté, vous les chargez maintenant explicitement, et seuls les' members' qui appartiennent à MemberCompany que vous sélectionnez seront récupéré. –

Questions connexes