Bucle de autorreferencia de Newtonsoft JsonSerializer usando Entity Framework Core

He encontrado el error:

JsonSerializationException: bucle de referencia automática detectado para la propiedad 'Asunto' con el tipo 'Project.Models.Subject'. Ruta 'datos [0] .Totales'.

Se produce cuando cargo una vista con una cuadrícula de datos poblada por unIEnumerable<Subject> modelo. The Grid es un DevExtreme DataGrid vinculado al modelo de la Vista de esta manera:

@(Html.DevExtreme().DataGrid()
    .DataSource(Model)
    .Paging(paging =>
    {
        paging.Enabled(true);
        paging.PageIndex(0);
        paging.PageSize(20);
    })
    .Columns(columns =>
    {
        columns.Add().DataField("SubjectId");
        ... other fields
    })
)

El cual se completa desde un controlador que extrae datos de un repositorio con esta función:

public async Task<IEnumerable<Subject>> GetSubjectsAsync()
        {
            return await _context.Subject.ToListAsync();
        }

La tabla Asunto tiene una relación 1: 1 con Totales con Totales que tienen una referencia de clave externa al Asunto. Los modelos en el proyecto tienen este aspecto (generado a partir de Scaffold-DbContext):

public partial class Subject
    {
        public Guid SubjectId { get; set; }
        public virtual Totals Totals { get; set; }
    }

public partial class Totals
    {
        public Guid TotalsId { get; set; }
        public virtual Subject Subject { get; set; }
    }

Como los 2 objetos se refieren entre sí, provoca un bucle cuando se serializa. Para corregir esto, agregué esta configuración a mi método Startup.ConfigureServices:

services.AddMvc()
                .AddJsonOptions(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

Lo que obtuve de esta respuesta:https://stackoverflow.com/a/40501464/7897176

Sin embargo, esto no soluciona el problema y sigue causando un error al cargar una vista que involucra sujetos. Agregando[JsonIgnore] La propiedad Asunto de Totales soluciona el problema, pero no quiero tener que agregar eso a cada propiedad secundaria en mis modelos y tener que rehacerlo cada vez que actualizo mis modelos desde la base de datos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta