EF 코어의 최신 야간 빌드와 다 대다 관계를 만드는 법?

entity-framework-core

문제

Fluent API를 사용하여 EF7 EF Core의 두 테이블간에 다 대다 관계를 만드는 방법은 무엇입니까? 예를 들어, 다음 표가 있다고 가정 해보십시오.

사람들에게 사진 데이터베이스 다이어그램

어떻게 DbContext 클래스에서 modelBuilder를 사용하여 이와 같은 관계를 정의 할 수 있습니까?

나는이 주제에 관한 EF 팀의 회의 노트 에서이 링크를 보았지만, 작년부터 였고 EF7 EF 코어에서 어떻게 접근 해야하는지 에 대한 새로운 정보가 있는지 궁금해하고 있습니다.

People과 PhotosPeople은 물론 Photos와 PhotosPeople 간의 일대 다 관계를 만들 수 있습니다. 데이터베이스는 원하는대로 생성되지만 사람과 사진 간의 탐색에는 이제 중간 엔터티와의 상호 작용이 필요합니다. 나는 이것을 피하고 싶다.

수락 된 답변

# 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 를 복합 키로 구성하십시오.

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; }
}

탐색하려면 선택 :

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; }
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.