Ответ 1
Отслеживается # 1368. Обходной путь состоит в том, чтобы сопоставить таблицу соединений с сущностью:
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; }
}
Обязательно настройте PersonPhoto
с помощью составного ключа:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PersonPhoto>().HasKey(x => new { x.PhotoId, x.PersonId });
}
Для навигации используйте Select:
// person.Photos
var photos = person.PersonPhotos.Select(c => c.Photo);