나는 많은 운없이 코드 우선 EF 4.1을 사용하여 외래 키 관계 및 기타 제약 조건을 선언하는 방법에 대한 리소스를 찾고 있습니다. 기본적으로 코드로 데이터 모델을 만들고 MVC3를 사용하여 해당 모델을 쿼리합니다. 모든 것이 훌륭한 MVC를 통해 작동하지만 (Microsoft에 대한 쿠도스!) 데이터 모델 제약이 필요하기 때문에 작동하지 않기를 원합니다.
예를 들어, 외부 개체 (테이블) 인 속성이 많은 Order 개체가 있습니다. 지금은 주문을 만들 수 있지만 외래 키 또는 외부 개체를 추가 할 수 없습니다. MVC3는 이것을 문제없이 설정합니다.
저장하기 전에 컨트롤러 클래스에 직접 개체를 추가 할 수 있다는 것을 알고 있지만 제약 조건 관계가 충족되지 않으면 DbContext.SaveChanges () 호출이 실패하고 싶습니다.
새로운 정보
따라서 특히 고객 개체를 지정하지 않고 Order 개체를 저장하려고 할 때 예외가 발생하고 싶습니다. 대부분의 Code First EF 문서에 설명 된대로 개체를 구성하는 경우에는 이것이 동작이 아닌 것 같습니다.
최신 코드 :
public class Order
{
public int Id { get; set; }
[ForeignKey( "Parent" )]
public Patient Patient { get; set; }
[ForeignKey("CertificationPeriod")]
public CertificationPeriod CertificationPeriod { get; set; }
[ForeignKey("Agency")]
public Agency Agency { get; set; }
[ForeignKey("Diagnosis")]
public Diagnosis PrimaryDiagnosis { get; set; }
[ForeignKey("OrderApprovalStatus")]
public OrderApprovalStatus ApprovalStatus { get; set; }
[ForeignKey("User")]
public User User { get; set; }
[ForeignKey("User")]
public User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
이것은 환자에 대한 VS 생성보기에 액세스 할 때 발생하는 오류입니다.
에러 메시지
'PhysicianPortal.Models.Order'유형의 'Patient'속성에 대한 ForeignKeyAttribute가 유효하지 않습니다. 종속 유형 'PhysicianPortal.Models.Order'에서 외래 키 이름 'Parent'를 찾을 수 없습니다. 이름 값은 쉼표로 구분 된 외래 키 속성 이름 목록이어야합니다.
문안 인사,
귀도