entity framework core - related - ¿Cómo crear una relación de muchos a muchos con las últimas versiones nocturnas de EF Core?
install entity framework core (1)
Esto es seguido por el #1368 . La solución alternativa es asignar la tabla de unión a una entidad:
class Photo
{
public int Id { get; set; }
public ICollection<PersonPhoto> PersonPhotos{ get; set; }
}
class PersonPhoto
{
public int PhotoId { get; set; }
public Photo Photo { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
}
class Person
{
public int Id { get; set; }
public ICollection<PersonPhoto> PersonPhotos{ get; set; }
}
Asegúrese de configurar
PersonPhoto
con una clave compuesta:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PersonPhoto>().HasKey(x => new { x.PhotoId, x.PersonId });
}
Para navegar, use un Seleccionar:
// person.Photos
var photos = person.PersonPhotos.Select(c => c.Photo);
¿Cómo utiliza la API Fluent para crear una relación de muchos a muchos entre dos tablas en
EF7
EF Core?
Por ejemplo, supongamos que tiene las siguientes tablas:
¿Cómo se aprovecha el modelBuilder en la clase DbContext para definir una relación como esta?
He visto
this
enlace de las notas de la reunión del equipo de EF con respecto a este tema, pero es del año pasado y me pregunto si hay nueva información sobre cómo abordar esto en
EF7
EF Core.
Puedo crear una o muchas relaciones entre Photos y PhotosPeople, así como entre People y PhotosPeople. La base de datos se genera como me gustaría, pero la navegación entre Personas y Fotos ahora requiere interacción con una entidad intermedia. Me gustaría evitar esto.