매핑에 대한 제안도 공유한 외국인 키(값을 객체에는 엔티티)엔티티 프레임 워크 4.1?

StackOverflow https://stackoverflow.com/questions/6073345

문제

나는 프로젝트 엔터티 및 Rfi entity.프로젝트 entity 의 목록을 포함 TeamMembers.프로젝트에서 탐색 속성 Rfi entity.에 Rfi 엔티티가 RecipientId.이 Id 를 나타내에서 사람 TeamMembers 컬렉션입니다.상상해 보세요 웹 페이지에서,우리는 드롭 다운 상자라는 받는 사람입니다.이 목록에는 다음이 포함됩니다 모든 팀원들의 프로젝트입니다.사용자가 선택한 문서는 목록이다.의 Id 는 문의에 저장됩니다 RecipientsId 을 제공합니다.페이지를 다시 로드할 때 우리는 선택의 Id 는 사용자에서 드롭다운을 기반으로 값에 RecipeintsId 을 제공합니다.가장 좋은 방법이 무엇인지도 이 EF4.1 를 사용하는 유창한 API?

    public class Project : BaseEntity
    {
        public string ProjectNumber { get; set; }
        public string Description { get; set; }

        public string CreatedBy { get; set; }
        public string ModifiedBy { get; set; }
        public string Currency { get; set; }


        #region Navigation Properties
        public Guid AddressId { get; set; }
        public virtual Address Address { get; set; }
        public Guid CompanyCodeId { get; set; }
        public virtual CompanyCode CompanyCode { get; set; }
        public virtual ICollection<Contact> TeamMembers { get; set; }
        #endregion

    }


    public class Rfi : Document
    {
        public string Number { get; set; }
        public string Subject { get; set; }
        public string SubcontractorRfiReference { get; set; }
        public string SpecificationSection { get; set; }

        public RfiStatus RfiStatus { get; set; }

        public Guid RecipientId { get; set; }


        #region Navigation Properties
        public Guid ProjectId { get; set; }
        public Project Project { get; set; }
        #endregion
    }
도움이 되었습니까?

해결책

나는 그것을 이해의 문제는 사이의 매핑 RfiContect - Project 지 않에서 어떤 역할을 받는 사람 기능 데이터베이스에서 관점입니다.

중 하나가 필요합니다 Recipient 탐색에 호텔 RfiRfis 탐색에 호텔 Contact.EF 코드 번째 필요성 에 적어도 한쪽의 관계.

그래서 같은 것을 사용할 수 있습니다:

public class Rfi : Document
{
    public string Number { get; set; }
    public string Subject { get; set; }
    public string SubcontractorRfiReference { get; set; }
    public string SpecificationSection { get; set; }

    public RfiStatus RfiStatus { get; set; }

    #region Navigation Properties
    public Guid RecipientId { get; set; }
    public Contact Recipient { get; set; }
    public Guid ProjectId { get; set; }
    public Project Project { get; set; }
    #endregion
}

지도:

modelBuilder.Entity<Rfi>()
            .HasRequired(r => r.Recipient)
            .WithMany()
            .HasForeignKey(r => r.RecipientId);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top