2011-03-23 30 views
0

C#W /城堡ActiveRecord的可以在多個類別中的ActiveRecord/NHibernate的共享一個數據庫表

我在C#兩個(或更多)班,我想用同一個數據庫表進行交互。這兩個類不共享基類,所以我不能使用判別器。我只想將表列分爲兩個(或更多)類。與JoinedTable屬性的目的相反。這可以做到嗎?

+1

你能有代表表中的單個類,並使其實現多個接口邏輯分割列? – MattDavey 2011-03-23 08:44:29

+0

@MattDavey好想法,我會嘗試 - 我真的很喜歡你能夠看到問題背後的問題。 – KBoek 2011-03-23 09:07:53

回答

1

爲了擴大對我的評論,則可以順理成章地組中的活動記錄對象的列通過繼承多個接口...

interface IPerson 
{ 
    string FirstName { get; set; } 
    string LastName { get; set; } 
} 

interface IAddress 
{ 
    string AddressLine1 { get; set; } 
    string AddressLine2 { get; set; } 
    string City { get; set; } 
    string Province { get; set; } 
    string Country { get; set; } 
} 

class CustomerRecord : IPerson, IAddress // ActiveRecord object map to table... 
{ 
    // IPerson members... 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    // IAddress members... 
    public string AddressLine1 { get; set; } 
    public string AddressLine2 { get; set; } 
    public string City { get; set; } 
    public string Province { get; set; } 
    public string Country { get; set; } 
} 
1

有兩種策略,對幾類映射到一個表:

繼承:是的,我知道你沒有它,但你也可以使用一個接口作爲「基礎類」。在同一個表中有幾個(根)類沒有任何共同點是沒有意義的。

零部件:與實際相反的加入。您可以將表格的各個部分分開放置。在這種情況下,只有一個聚合其他類的根實體。

+0

感謝您的回答,這絕對有用 - 即使我決定採用MattDavey提供的解決方案 – KBoek 2011-03-23 11:29:49

相關問題