实体框架,Linq和一个可选的子项

时间:2014-11-26 14:44:12

标签: linq entity-framework asp.net-web-api2

我有三个类,名为Authors,Books and Publishers

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

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

为了解决这个问题,我使用以下方法重建从存储库返回的List:

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

但是,当发布商不存在时,我遇到了问题。我该如何处理?

1 个答案:

答案 0 :(得分:1)

看起来你有XY problem

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