Мой проект — это веб-приложение ASP.NET Core с Code First Entity Framework Core и интерфейсом Angular.
Я хочу контролировать, когда загружать ссылочные объекты. Они могут быть полезны, но также могут создавать циклические ссылки с внутренними ошибками во внешнем интерфейсе. (JSON будет бесконечно длинным.)
Модели:
Код: Выделить всё
class Book {
public virtual ICollection
Pages { get; set; }
...simple properties
}
class Page {
public virtual Book Book { get; set; }
...simple properties
}
Код: Выделить всё
using (var context = new MoneyStatsContext())
{
var books = context.Books.Where(rule => rule.State == 1).ToList();
}
Код: Выделить всё
using (var context = new MoneyStatsContext())
{
var books = context.Books.Where(rule => rule.State == 1).Include(x => x.Pages).ToList();
}
Код: Выделить всё
.Select(new Book() {
...setting each property by hand
}
- Попробовал установить это ложь и истину. Кажется, ничего не меняется.
Код: Выделить всё
public MyContext()
{
this.ChangeTracker.LazyLoadingEnabled = false;
}
- Пытался указать это в Startup.cs, но options не имеет свойства SerializerSettings .
Код: Выделить всё
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
Подробнее здесь: https://stackoverflow.com/questions/629 ... ework-core