阻止webapi从关联表中返回所有数据

时间:2013-08-22 11:01:11

标签: entity-framework asp.net-web-api entity-framework-6 asp.net-mvc-5

我有一个名为MemberCompany的表,其中包含成员所拥有的每个公司的记录。模型如下。当我通过传递memberid的webapi方法查询它时,我可以在调试模式中看到它返回该成员的一个公司,但是当我在浏览器中运行它时,我可以看到它也返回整个成员列表。是否可以在没有两个引用表的情况下返回一个membercompany记录集合?我注释掉了包含这两个表的初始代码,但它们似乎仍然包含在响应中。

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

1 个答案:

答案 0 :(得分:1)

关闭上下文的延迟加载。我最好的猜测是它已经打开,并且在图表序列化时加载实体......

注意:这实际上是一个很好的想法在网络应用程序中,我建议你在全球范围内进行,这样你就不会因为后来的延迟加载而被性能问题所困扰,并且总是知道你将返回什么