c# - net - linq y entity framework
Mapeo de Entity Framework del objeto que contiene una lista de los mismos objetos (1)
Actualmente en mi código estoy haciendo algo como esto
public class Subject
{
private List<Subject> _prerequisites;
}
Una asignatura puede tener muchos requisitos previos (que también son asignaturas), y el tema puede ser un requisito previo para muchas asignaturas.
Originalmente utilizábamos conjuntos de datos tipeados para guardar los datos en la base de datos y nuestras tablas se veían así:
Ahora queremos migrar desde el uso de conjuntos de datos tipeados a la estructura de la entidad, pero no estoy seguro de cómo crear la asignación. Generar el EF de la base de datos no funciona realmente, ya que simplemente descarta cada tabla y utiliza las claves externas como propiedades de navegación. Por lo que entiendo, EF no necesita otra entidad para una relación de muchos a muchos. ¡Si alguien puede ayudar sería genial! ¡Aclamaciones!
Lo averigué. Necesario para anular el desarrollo del modelo predeterminado de esto en el método OnModelCreating en la clase que hereda el DbContext.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Subject>().
HasMany(m => m.Prerequisites).
WithMany()
.Map(m =>
{
m.ToTable("SubjectPrerequisite");
m.MapLeftKey("SubjectId");
m.MapRightKey("PrerequisiteId");
});
}