2013-05-21 6 views
0

필자는 모든 초 기자 및 소유자에 대해 FullName을 반환해야합니다. 이렇게하려면 초 기자와 소유자가 모두 EmployeeID의 외래 키 여야합니까?코드 첫 번째 외래 키

처음 코드를 사용하여 초 기자 및 소유자 외래 키를 만드는 방법이나 면도기를 사용하여 FullName을 표시하는 방법을 잘 모르겠습니다.

아이디어가 있으십니까? 감사.

ChangeRequest

namespace Project.Models 
{ 
    public class ChangeRequest 
    { 
     public int ChangeRequestID { get; set; } 
     public int Initiator { get; set; } 
     public int Owner { get; set; } 
    } 
} 

직원

namespace Project.Models 
{ 
    public class Employee 
    { 
     public int EmployeeID { get; set; } 
     public string Surname { get; set; } 
     public string FirstName { get; set; } 

     public string FullName 
     { 
      get 
      { 
       return Surname + ", " + FirstName; 
      } 
     } 
    } 
} 

보기

당신은 언급하지 않은
@foreach (var item in Model.ChangeRequests) 
{ 
    @Html.DisplayFor(modelItem => item.Initiator) 
    @Html.DisplayFor(modelItem => item.Owner) 
} 

답변

0

EF 버전, 난 당신이 게으른 로딩을 원한다면, 또는 속성이나 Fluent API를 사용한다면, 많은 가치있는 어소시에이션 using Fluent API에 대한 좋은 참고 자료와 DataAnnotations을 사용하는 권장 코드 그리고 버전, 지연로드 및 속성에 대한 몇 가지 가정을하는 예제 코드가 있습니다 :

public class ChangeRequest 
{ 
    [Key] 
    public int ChangeRequestID { get; set; } 
    public int? InitiatorId { get; set; } 
    public int? OwnerId { get; set; } 

    [ForeignKey("InitiatorId")] 
    public virtual Employee Initiator { get; set; } 
    [ForeignKey("OwnerId")] 
    public virtual Employee Owner { get; set; } 
} 
public class Employee 
{ 
    [Key] 
    public int EmployeeID { get; set; } 
    public string Surname { get; set; } 
    public string FirstName { get; set; } 

    [InverseProperty("Initiator")] 
    public virtual ICollection<ChangeRequest> CrsInitiated { get; set; } 
    [InverseProperty("Owner")] 
    public virtual ICollection<ChangeRequest> CrsOwned { get; set; } 

    [NotMapped] 
    public string FullName 
    { 
     get 
     { 
      return Surname + ", " + FirstName; 
     } 
    } 
} 

면도기 :

@foreach (var item in Model.ChangeRequests) 
{ 
    @Html.DisplayFor(modelItem => item.Initiator.FullName) 
    @Html.DisplayFor(modelItem => item.Owner.FullName) 
} 
관련 문제