【发布时间】:2018-11-03 12:54:54
【问题描述】:
我正在尝试使用以下类在 WebApi 中创建一个简单的应用程序。
Author 和Book,Author 具有以下属性。
public class Author
{
public int AuthorId{ get; set; }
public string Name { get; set; }
public virtual List<Book> Books { get; set; }
}
Book 具有以下属性。
public class Book
{
public int BookId{ get; set; }
public string Title{ get; set; }
public virtual Author Author{ get; set; }
}
我有一个看起来像这样的数据库上下文
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("dbCon")
{
Database.CreateIfNotExists();
Configuration.ProxyCreationEnabled = false;
}
public DbSet<Author> Authors { get; set; }
public DbSet<Books> Books { get; set; }
}
在我看来,我正在尝试显示所有作者及其相关书籍。这是我的js 代码。
function getData() {
$.ajax({
url: '/api/Author',
type: 'GET',
dataType: 'json',
contentType: 'application/json',
success: function (data) {
console.log(data);
showData(data);
}
});
}
function showData(data) {
var string = '';
$.each(data, function (i, a) {
string += '<h1>Question title: ' + a.Name + '</h1>';
$.each(q.Books, function (j, b) {
string += '<p>' + b.Title + '</p><br>';
});
});
$('.divclass').html(res);
}
返回所有作者和相关书籍的控制器方法。
public List<Author> Get()
{
return db.Authors.Include(a => a.Books).AsNoTracking().ToList();
}
当我尝试运行项目时,我的控制台中出现错误。
下面的错误说:
“System.Collections.Generic.List`1[[WebApplication1.Models.Books, WebApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]”类型的对象图包含循环,如果出现以下情况则无法序列化参考跟踪被禁用。并且异常类型是 System.Runtime.Serialization.SerializationException。
我使用代码优先迁移来为数据库做种,我知道数据库不是空的。我该如何解决?还有什么问题?
【问题讨论】:
-
这是什么项目? “Web.Api”、“MVC”?
-
一开始就说,是webapi :)
-
哦,对不起,也请添加标签。
-
不幸的是,我没有足够的经验来选择该标签。我是新用户:)
标签: javascript c# json entity-framework