0
鑑於我有兩個實體:Deputy
和DeputyProfile
:從兒童或從實體框架代碼優先父導航性能
public class Deputy : IdableEntity
{
[Required]
public string FirstName { get; set; }
public string Patronimic { get; set; }
[Required]
public string LastName { get; set; }
}
public class DeputyProfile : IdableEntity
{
[Required]
public string Dosieur { get; set; }
}
是在它們之間建立一個一對一關係的最佳途徑是通過把從副檔案到副檔案(從孩子到父母)還是簽證?
它應該是這個樣子?:
public class DeputyProfile : IdableEntity
{
[Required]
public virtual Deputy Deputy{ get; set; }
[Required]
public string Dosieur { get; set; }
}
什麼是合乎邏輯的規則基礎上,它是最好的做出這樣的決定?
P.S.作爲IdableEntity
的孩子給了一個自己的Guid Id字段。
謝謝,我用的GUID ID,但不會使這裏的任何區別,我想。只是爲了確保 - 在你的答案中,我看到兩個班級都「意識到」對方並且可以相互參照。這是否是唯一的方法,或者我的方法(似乎更簡單)也可以在DbContext中工作,如果我爲DbContext和DeputyProfile定義了DbSets?因爲兩者都是IdableEntity的孩子 - 都繼承了Guid Id字段。 – 2012-08-03 22:44:17
@ MaximV.Pavlov 1.使用GUID很好。 2.如果依賴實體擁有自己的密鑰,則該關係變爲多對多。雙方都不需要實現導航屬性。 3.不要只爲一個ID從基類派生所有的類。它將爲您的所有課程創建一個大型表格:每個層次結構的表格。查看我上面提到的一系列博客。 – Dabblernl 2012-08-04 03:07:09