Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 防止即时加载包含所包含实体的子级(停止自引用循环)_Asp.net_Asp.net Mvc_Entity Framework - Fatal编程技术网

Asp.net 防止即时加载包含所包含实体的子级(停止自引用循环)

Asp.net 防止即时加载包含所包含实体的子级(停止自引用循环),asp.net,asp.net-mvc,entity-framework,Asp.net,Asp.net Mvc,Entity Framework,我有两个具有多对多关系的实体。当我使用Include()加载一个实体时,它会加载子实体,还包括子实体的子实体。我不想要孙子 我关闭了延迟加载:LazyLoadingEnabled=false;我忽略了自引用循环: config.Formatters.JsonFormatter.SerializerSettings .ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling .Ignore; 为了更好地解释事情:

我有两个具有多对多关系的实体。当我使用Include()加载一个实体时,它会加载子实体,还包括子实体的子实体。我不想要孙子

我关闭了延迟加载:LazyLoadingEnabled=false;我忽略了自引用循环:

config.Formatters.JsonFormatter.SerializerSettings
    .ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling
    .Ignore;
为了更好地解释事情:

public class A
{
    public int Id { get; set; }
    public ICollection<B> Bs { get; set; }
}

public class B
{
    public int Id { get; set; }
    public ICollection<A> As { get; set; }
}
我得到的JSON看起来像这样:

[
  {
    "Id": 1,
    "Bs": [
        {
          "Id": 1,
          "As": [
              {
                "Id": 2,
                "Bs": [

          ...

  },
  {
    "Id": 2,
    "Bs": [
        {
          "Id": 1,
          "As": [
              {
                "Id": 1,
                "Bs": [

         ...

传递自引用实体似乎真的很浪费。有什么方法可以防止这种情况发生吗?

我在类B中的As属性中添加了Newtonsoft.Json.JsonIgnoreAttribute

public class B
{
    public int Id { get; set; }
    [JsonIgnore]    
    public ICollection<A> As { get; set; }
}
public class B
{
    public int Id { get; set; }
    [JsonIgnore]    
    public ICollection<A> As { get; set; }
}
PM> Install-Package Newtonsoft.Json