通过导航属性列表内的Entity来循环引用实体框架

时间:2019-06-28 16:42:06

标签: entity-framework json.net

我正在使用导航属性中的嵌套实体来获取实体。问题是 我有一个带有导航属性Book的{​​{1}},每个Borrows都有一个导航属性Borrow引用了本书,因此有一个循环引用。我想我应该做的是找到一种方法来包括一本书的借阅列表,并且在每笔借阅中都不要通过Book内部的导航包含反向引用?我是Entity Framework的新手,不确定如何执行此操作,听说过导航属性的加载类型,但不确定是否适合这种情况。

类似地,每当我获取借用书的清单时,我都希望借书包括该书,但不希望借书中的借书清单导致循环引用。

Web API控制器Borrow.Book

/books

错误:

public List<Book> GetBooks()
{
    var books = db.Books.ToList();
    return books;
}

1 个答案:

答案 0 :(得分:0)

这里一个可能的解决方案是采用中间结构

书->借书->人 人物->借阅清单->图书

借书只包含书籍详细信息和个人详细信息。图书将直接链接到借阅者,而不是直接链接到个人/借阅者。此人将拥有一个借阅集,并且不会直接链接到Book。这样,您将解决循环引用。