Múltiples contextos de bases de datos cuando se usa un patrón de repositorio

Estoy un poco perdido en este momento ... Nunca he visto tanta información divergente con respecto a la solución del problema. Pero comencemos desde el principio.

Estoy usando ASP.NET MVC con repositorios inyectados a controladores, gracias a Ninject. Tengo 2 Entidades simples: Administrador con una lista de entradas de blog creadas y Entradas con un campo de Administrador virtual.

Administración:

public class Admin
{
    [Key, ScaffoldColumn(false)]
    public int Id { get; set; }

    [Required(ErrorMessage = "Zły login.")]
    [StringLength(20), MinLength(3)]
    [RegularExpression(@"^[a-zA-Z0-9]*$", ErrorMessage = "Special characters are not allowed.")]
    public string Login { get; set; }

    [Required(ErrorMessage = "Złe hasło.")]
    [StringLength(20, MinimumLength = 3)]
    [DataType(DataType.Password)]
    [Display(Name = "Hasło")]
    public string Password { get; set; }

    public virtual List<Entry> CreatedEntries { get; set; } // napisane aktualności przez danego admina
}

Entrada:

public class Entry
{
    [Key, ScaffoldColumn(false)]
    public int Id { get; set; }

    [StringLength(200, MinimumLength = 2)]
    [DataType(DataType.Text)]
    [Display(Name = "Tytuł")]
    public string Title { get; set; }

    [Required, StringLength(2000), MinLength(3)]
    [Display(Name = "Treść")]
    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string Text { get; set; }

    public virtual Admin Admin { get; set; }
}

Probablemente sepa a dónde va, ya que este problema es ... "clásico" en stackoverflow.

En el controlador, quiero vincular un objeto a otro:

entry.Admin = repAdmins.GetAdmin(User.Identity.Name);

repEntries.AddEntry(entry);

En el repositorio:

public void AddEntry(Entry entry)
    {
        db.Entries.Add(entry);
        db.SaveChanges();
    }

Por supuesto, no puedo hacer eso, debido al famoso "Un objeto de entidad no puede ser referenciado por múltiples instancias de IEntityChangeTracker", que es el resultado de tener contextos de base de datos separados en cada repositorio.

Cuando estaba buscando una solución, ya sabía que probablemente la mejor manera de resolverla es usar un contexto común. Y luego descubrí el patrón de la Unidad de Trabajo. Pero aquí es cuando comienza el verdadero problema.

En muchos sitios, la solución a esto es un poco diferente.Los repositorios deben tener una interfaz genérica común (que no quiero usar, porque no necesito tener cada operación CRUD en cada entidad, además a veces necesito tener métodos adicionales como "IfExists", etc.)En algunos sitios he leído que toda esta abstracción no es necesaria, ya que la abstracción ya se proporciona con Entity Framework y UoW se implementa en DbContext (lo que sea que eso signifique)El patrón de la Unidad de Trabajo (al menos a partir de ejemplos en Internet) parece ser un verdadero dolor para mí ...

Necesito orientación ... Aprendo ASP.NET MVC por solo un año. Para mí parece que es un "triunfo de la forma sobre el contenido". Porque...Lo que simplemente necesito es unir un objeto a otro. Estoy empezando a pensar que era mejor cuando simplemente tenía un objeto de contexto en el Controlador y no necesitaba construir la Torre Eiffel para lograr lo que se mencionó anteriormente: \ Sin embargo, me gusta la idea de repositorios ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta