ฉันค้นหาแหล่งข้อมูลเกี่ยวกับวิธีการประกาศความสัมพันธ์ของคีย์ต่างประเทศและข้อ จำกัด อื่น ๆ โดยใช้รหัส EF 4.1 แรกโดยไม่ต้องมีโชคมากนัก โดยทั่วไปฉันกำลังสร้างโมเดลข้อมูลในโค้ดและใช้ MVC3 เพื่อค้นหาโมเดลนั้น ทุกอย่างทำงานผ่าน MVC ซึ่งยอดเยี่ยมมาก (ขอชื่นชม Microsoft!) แต่ตอนนี้ฉันไม่ต้องการให้มันทำงานเพราะฉันต้องมีข้อ จำกัด ของโมเดลข้อมูล
ตัวอย่างเช่นฉันมีวัตถุ Order ที่มีคุณสมบัติมากมายที่เป็นวัตถุภายนอก (ตาราง) ตอนนี้ฉันสามารถสร้างคำสั่งซื้อได้โดยไม่มีปัญหา แต่ไม่สามารถเพิ่ม Foreign Key หรือวัตถุภายนอกได้ MVC3 ตั้งค่านี้ไม่มีปัญหา
ฉันรู้ว่าฉันสามารถเพิ่มวัตถุด้วยตัวเองในคลาสคอนโทรลเลอร์ก่อนที่จะบันทึก แต่ฉันต้องการให้การเรียกไปยัง DbContext.SaveChanges () ล้มเหลวหากไม่ตรงตามความสัมพันธ์ของข้อ จำกัด
ข้อมูลใหม่
ดังนั้นโดยเฉพาะฉันต้องการให้มีข้อยกเว้นเกิดขึ้นเมื่อฉันพยายามบันทึกวัตถุคำสั่งซื้อโดยไม่ระบุวัตถุของลูกค้า สิ่งนี้ดูเหมือนจะไม่ใช่พฤติกรรมถ้าฉันเพียงแค่จัดองค์ประกอบวัตถุตามที่อธิบายไว้ในเอกสาร 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 ที่สร้างขึ้นสำหรับผู้ป่วย:
ข้อความผิดพลาด
ForeignKeyAttribute ในทรัพย์สิน 'ผู้ป่วย' ในประเภท 'PhysicianPortal.Models.Order' ไม่ถูกต้อง ไม่พบชื่อคีย์ต่างประเทศ 'Parent' ในประเภทที่ขึ้นกับ 'PhysicianPortal.Models.Order' ค่า Name ควรเป็นรายการชื่อคุณสมบัติคีย์ต่างประเทศที่คั่นด้วยเครื่องหมายจุลภาค
ความนับถือ,
กุยโด