2010-07-31 231 views
2

我剛剛完成從生產Oracle數據庫映射100個表格。一路上我注意到許多關係都不是建模。主要是外鍵。映射生產數據庫

我應該修改我的映射以包含適當的關係嗎?或者我應該保持映射,以反映數據庫100%?

我更傾向於映射適當的關係,以澄清這些表是如何相互關聯的。這是我的意思的一個例子。

[ActiveRecord("Incident")] 
public class Incident : ActiveRecordBase<Incident> 
{ 
    [PrimaryKey("IncidentId")] 
    public int IncidentId { get; set; } 

    [Property(Column = "CustomerOut")] 
    public int CustomersOut { get; set; } 

    [Property(Column = "DistrictNumber")] 
    public int DistrictNumber { get; set; } 
} 

[ActiveRecord("District")] 
public class District : ActiveRecordBase<District> 
{ 
    [PrimaryKey("DistrictNumber")] 
    public int DistrictNumber { get; set; } 

    [Property(Column = "DistrictName")] 
    public string DistrictName { get; set; } 
} 

正如你可以看到,從事件表中的DistrictNumber列不是FK(屬於關聯)的關係,即使我認爲它應該是。

+2

您可以發佈樣本映射類沒有關係? – 2010-07-31 02:51:42

+0

當然,讓我真正快速地做出一些事情。 – Mike 2010-07-31 18:27:44

回答

1

我會加入適當的關係。

因此,您可以完全從nhibernate中受益,一個示例是與all-delete-orphan的映射。 NHibernate會爲你處理所有的孩子,沒有這個,你必須自己寫代碼來刪除子記錄。

另外我想你需要的關係使用延遲加載...再次,我認爲你應該映射corectly使您能夠完全使用nhibernate。

1

前幾天我已經回答了your question here關於做什麼是正確的事情:將關係映射爲適當的關係

1

當然,你應該映射關係,因爲它們正確地在數據庫中。使用ORM,就像NHibernate一樣,你可以通過完全正確的映射數據庫來獲得很多好處!

否則,你會發現自己寫了一堆代碼,也就是外的開箱使用NHibernate ...