지금까지 완벽하게 작동하는 코드 우선 접근 방식을 사용하여 데이터베이스를 만들었습니다. 그러나 나는 EF6가 어떻게 든 짐작할 수없는 사소한 문제가 있거나 잘못하고있다.EF6 코드 동일한 엔터티를 사용하여 2 개의 속성을 가질 때 처음 혼란이 생깁니다.
I 클래스 유형 Person
의 속성 CreatedBy
입력 ICollection<Person>
의 또 다른 특성 Members
을 가지고 Project
있다;
public virtual ICollection<Project> Projects { get; set; }
이 두 클래스 간 다 대다 관계가있을 예정되어 EF6에게 :
public class Project
{
// ...
public Person CreatedBy { get; set; }
public virtual ICollection<Person> Members { get; set; }
}
클래스 Person
에서 나는 다음과 같은 속성을 추가했습니다. 나는 Project
클래스에서 주석 CreatedBy
와 비주얼 스튜디오에서 Add-Migration
및 Update-Database
를 실행하면
, 무슨 일어날 것은 Project <-> Person
테이블이 데이터베이스에 작성 될 것입니다.
내가 다음 CreatedBy
속성을 주석을 해제하고 동일한 스크립트를 다시 Project <-> Person
테이블이 삭제됩니다 모두 Project
및 Person
테이블이 1 대 1의 관계로 변경 둘 사이에 외래 키와 함께 새 열을 얻을를 실행합니다.
어떻게 코드 우선을 사용하여 내 Project
과 Person
클래스 사이의 관계를 설정하면 1 대 다수 (1 명은 많은 프로젝트를 생성 할 수 있습니다) 및 다 대다 (많은 사람을 많은 프로젝트에 추가 할 수 있습니까?)
도움이되는지 확인하려면 http://stackoverflow.com/questions/23763538/ef6-one-to-many-and-many-to-one-between-same-entities를 참조하십시오. – Mike