如何在asp.net mvc web api中忽略导航属性

时间:2014-08-14 07:49:58

标签: json entity-framework asp.net-web-api asp.net-web-api2

我正在使用ASP.NET Web API和Entity Framework,但是在为导航属性生成JSON时我遇到了问题:

我有两张桌子;产品和类别。

    public class Product
        {
            public int ProductID { get; set; }
            public string ProductName { get; set; }

            public virtual Category Category { get; set; }
        }

public class Category
    {    
        public int CategoryID { get; set; }
        public string CategoryName { get; set; }

        public virtual ICollection<Product> Products { get; set; }
    }

当我为Product生成JSON时,它会生成JSON类别,但是在JSON类别中有另一个指向JSON产品的JSON,因此创建了一个巨大的JSON文件我尝试通过删除虚拟但每次都解决此问题我更新模型我面临同样的问题。有什么方法可以解决吗?

1 个答案:

答案 0 :(得分:4)

如果您使用的是Newtonsoft.Json,那么您只需将属性[JsonIgnore]应用于您想要忽略的属性。

public class Category
{    
    public int CategoryID { get; set; }
    public string CategoryName { get; set; }

    [JsonIgnore]
    public virtual ICollection<Product> Products { get; set; }
}

使用此设置,只要将类别序列化为Json,它就会忽略Products集合