1

두 엔티티가 있습니다. Employee & Contract입니다.EF ObservableListSource ForeignKey를 지정하십시오.

엔티티에서 AddedByEmployee & AssignedToEmployee입니다.

Employee 클래스에서 컬렉션 탐색 속성을 원하지만 Contract 클래스에서 올바른 키를 참조하려면 어떻게해야합니까?

지금까지 내가 가진 :

public class Employee 
{ 
    public int EmployeeID {get; set;} 
    public string Name {get; set;} 
    private readonly ObservableListSource<Contract> _Contracts = new ObservableListSource<Contract>(); 
    public virtual ObservableListSource<Contract> Contracts { get { return _Contracts; } 
} 

public class Contract 
{ 
    public int ContractID {get; set;} 
    public string Name {get; set;} 
    public int AddedByEmployeeID {get; set;} 
    public int AssignedToEmployeeID {get; set;} 

    [ForeignKey("AddedByEmployeeID")] 
    public virtual Employee AddedByEmployee { get; set; } 

    [ForeignKey("AssignedToEmployeeID")] 
    public virtual Employee AssignedToEmployee { get; set; } 
} 

을 그래서 기본적으로 : 어떻게이 ObservableListSource<Contract> 그것이 내가에 매핑 할 AddedByEmployeeID입니다 알려주나요?

감사

답변

0

당신은 하나가 DataAnnotations 또는 유창함 API를 사용하여이 작업을 수행 할 수 있습니다.

당신이 당신의 Contracts 또는 AddedByEmployee 특성 중 하나에 InverseProperty 속성을 추가 할 수 있습니다 (또는 둘 다,하지만이 필요하지 않습니다) DataAnnotations으로 그 일을.

Entity FrameworkContractsAddedByEmployee 사이의 관계를 만들어야한다고 알릴 것입니다.

[InverseProperty("AddedByEmployee")] 
public virtual List<Contract> Contracts 
{ 
    get { return _Contracts; } 
} 

대신 유창함 API를 사용하려는 경우, 당신은 단순히 명시 적으로이 같은 관계를 정의 할 수 있습니다

modelBuilder.Entity<Employee>() 
    .HasMany(p => p.Contracts) 
    .WithRequired(p => p.AddedByEmployee) 
관련 문제