При использовании отложенной загрузки я ожидаю, что дочерние навигационные свойства не загружены, но я не могу избежать загрузки дочерних элементов и появления круговой ссылки при сериализации как json
DbContext
:
public class SampleDbContext : DbContext
{
public SampleDbContext(DbContextOptions<SampleDbContext> options: base(options)
{ }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseLazyLoadingProxies();
}
public DbSet<Parent> Parents { get; set; }
public DbSet<Child> Children { get; set; }
}
Классы моделей:
public class Child
{
public int Id { get; set; }
[ForeignKey("Parent")]
public int ParentId { get; set; }
public string Name { get; set; }
public virtual Parent parent { get; set; }
}
public class Parent
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Child> children { get; set; }
}
Запуск:
services.AddDbContext<Models.SampleDbContext>(options =>options.UseLazyLoadingProxies().UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
Контроллер:
[HttpGet]
public async Task<List<Models.Parent>> Get()
{
var sample = _cont.Parents.ToList();
return sample;
}
Использование:
- Версия EF Core:2.2.1
- Поставщик базы данных: Microsoft.EntityFrameworkCore.Sqlite 2.2.1
- Операционная система: Win 10
- IDE: Visual Studio 2017