Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
EntityFrameworks、Linq和可选子级_Linq_Entity Framework_Asp.net Web Api2 - Fatal编程技术网

EntityFrameworks、Linq和可选子级

EntityFrameworks、Linq和可选子级,linq,entity-framework,asp.net-web-api2,Linq,Entity Framework,Asp.net Web Api2,我有三门课,叫做作家、书籍和出版商 一个作家可以有很多书。 一本书可以有许多作者。 一本书可以有一个(可选)出版商。 一个出版商可以有很多书 我想使用WebAPI提供一个作者、书籍和出版商的集合。最初,我在JSON.Net抛出循环引用异常时遇到了一个问题,因为从书中返回到作者的链接 为了解决这个问题,我使用以下方法重新生成从存储库返回的列表: List<Author> result = data.Select(x => new Author

我有三门课,叫做作家、书籍和出版商

一个作家可以有很多书。 一本书可以有许多作者。 一本书可以有一个(可选)出版商。 一个出版商可以有很多书

我想使用WebAPI提供一个作者、书籍和出版商的集合。最初,我在JSON.Net抛出循环引用异常时遇到了一个问题,因为从书中返回到作者的链接

为了解决这个问题,我使用以下方法重新生成从存储库返回的列表:

            List<Author> result = data.Select(x => new Author
        {
            Id = x.Id,
            Name = x.Name,
            Books = x.Book.Select(y => new Book
            {
                Id = y.Id,
                Name = y.Name,
                Publisher = new Publisher
                {   Id=y.Publisher.Id,
                    Name=y.Publisher.Name,
                }
            }).ToList()
        }).ToList();
List result=data。选择(x=>new Author
{
Id=x.Id,
Name=x.Name,
Books=x.Book.选择(y=>newbook
{
Id=y.Id,
Name=y.Name,
Publisher=新发布者
{Id=y.Publisher.Id,
Name=y.Publisher.Name,
}
})托利斯先生()
}).ToList();
然而,当出版商不存在时,我遇到了一个问题。我该如何处理这个问题?

看起来你有一个问题


您是否先尝试使用循环引用解决问题?检查配置JSON序列化程序以处理循环引用的答案。

谢谢。昨天我花了很长时间试图解决循环引用问题。我的谷歌技能让我无法找到Json序列化程序修复程序。