2014-05-19 22 views
1

假設我有一個將病人與醫生聯繫起來的數據庫和三張表。第三張表是關係表。實體框架 - 哪個對象創建關係有什麼關係?

DoctorId DoctorName 
------------------------ 
1   Dr. Jones 
2   Dr. Smith 

PatientId PatientName 
------------------------ 
1   Tom Jones 
2   Jerry Lewis 

DoctorID PatientID 
------------------------ 
1   1 
2   1 
2   2 

實體框架我可能會做類似下面的...

例子#1

​​

例2

using (var dbContext = New MyAppDBConectContainer()) 
{ 
    var doctor1 = new Doctor {DoctorName = "Dr. Smith"}; 
    var patient1 = new Patient {PatientName = "Jerry Lewis"}; 
    patient1.Doctors.Add(doctor1); 
    dbContext.Patients.Add(patient1); 
    dbContext.SubmitChanges(); 
} 

不它很重要如果您像例1中那樣將患者添加到醫生中,或者如例2所示將醫生添加到患者身上?這種關係會被保留下來嗎?

+0

方法沒有任何問題的答案在這裏回答你的問題? – joelmdev

回答

2

如果您已經在醫生實體上設置了患者ICollection,並且在患者實體上設置了醫生ICollection,那麼實體框架會推斷出多對多關係,並且這兩種方案都會導致相同的條目在醫生,病人和交界處。

如果你需要創建的數據庫表,如他們的名字和密鑰的更多控制,你可以使用HasMany()WithMany()Map()Fluent API