매핑에 대한 제안도 공유한 외국인 키(값을 객체에는 엔티티)엔티티 프레임 워크 4.1?
-
07-09-2020 - |
문제
나는 프로젝트 엔터티 및 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
}
해결책
나는 그것을 이해의 문제는 사이의 매핑 Rfi
고 Contect
- Project
지 않에서 어떤 역할을 받는 사람 기능 데이터베이스에서 관점입니다.
중 하나가 필요합니다 Recipient
탐색에 호텔 Rfi
나 Rfis
탐색에 호텔 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);
제휴하지 않습니다 StackOverflow